Estou migrando uma webapp de Hib3.x para Hib4.x.
A webapp acessa um BD legado que tem a seguinte situacao:
- Tabela Nota:
- PK: CodFornecedor, NumNota, Serie
- Campo de chave “alternativa” criada depois: CodNota (auto-incremento).
Mas OFICIALMENTE, a PK é formada pelos 3 campos.
- 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.