Hibernate 4 x BD Legado com Chave Primaria Composta

0 respostas
E

Estou migrando uma webapp de Hib3.x para Hib4.x.

A webapp acessa um BD legado que tem a seguinte situacao:

  1. Tabela Nota:
  • PK: CodFornecedor, NumNota, Serie
  • Campo de chave “alternativa” criada depois: CodNota (auto-incremento).
    Mas OFICIALMENTE, a PK é formada pelos 3 campos.
  1. Tabela ItemNota:
  • PK: CodFornecedor, NumNota, Serie, NumItem
  • Campo de chave “alternativa” criada depois: CodItemNota (auto-incremento).
    Mas OFICIALMENTE, a PK é formada pelos 4 campos.
No Hibernate 3.x, nao dava problema nenhum o seguinte mapeamento na Entity ItemNota:

@ManyToOne(fetch = FetchType.LAZY)

@JoinColumn(name = CODNOTA)

private Nota nota;

Ele fazia os joins numa boa de Nota com ItemNota usando CODNOTA.

Contudo, agora no Hibernate 4.x (4.2.2), da o seguinte erro:
Foreign key (FK_f03om5m4q04bbs42wunpha4r7:ITEMNOTA [codNota]))
must have same number of columns as the referenced primary key (NOTA [CODFORNECEDOR,NUMERONOTA,serie])

Eu pesquisei no forum do Hibernate mas somente tem casos obvios de erro de montagem de chave composta.
Mas no meu caso, eu quero que o Hibernate ignore a chave composta OFICIAL de Nota e usa o campo que eu
especifiquei.

Criado 12 de junho de 2013
Respostas 0
Participantes 1