[TRANSFERIDO] Hibernate: primary key e foreign key com tipos diferentes

Bom dia pessoal,

Estou com um problema meio estranho no mapeamento de um BD Postgres, que eu não possuo permissão para alterar.
Neste BD há uma tabela ano_modelo, cuja chave primária é a coluna id_ano_modelo, do tipo bigserial (basicamente um bigint positivo).
Tabém temos uma tabela veiculo que se relaciona com a ano_modelo através de uma coluna também chamada id_ano_modelo.
Até aí tudo bem. O problema é que a coluna em veículo é do tipo int4 e em ano_modelo é bigserial.
Não entendo como o Postgres deixou colunas de tipos distintos se referenciarem, porém isso aconteceu.

O problema todo está no meu acesso com hibernate a essa estrutura.

Tenho uma classe Veículo, que entre outras coisas têm o código abaixo:

[code]public class Veiculo {

@ManyToOne
@JoinColumn(name = "id_ano_modelo")
private AnoModeloVeiculo anoModelo;[/code]

E uma classe AnoModeloVeiculo:

public class AnoModeloVeiculo {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id_ano_modelo")
    private Long AnoModeloVeiculo.id;

Agora que vem o problema:

  • Quando o tipo do id da classe AnoModeloVeiculo é Long, a aplicação dá erro no tipo da coluna do relacionamento:
Wrong column type in transporte.veiculo for column id_ano_modelo. Found: int4, expected: bigint
  • Quando mudo o tipo para int, o erro dá no tipo do primary key:
Wrong column type in transporte.ano_modelo for column id_ano_modelo. Found: bigserial, expected: integer

Quando eu desfaço o relacionamento e deixo long, não dá erro nenhum.
Alguém tem alguma ideia? Existe alguma maneira de forçar o hibernate a fazer cast?

Obrigado

Desculpem, postei no fórum errado. Deveria ter ido pro fórum específico de persistência.
Já refiz a postagem lá. Podem ignorar esta.