Boa tarde!
No meu programa tenho 2 tabelas com chave-composta, segue exemplo:
Logo, as classes ficariam parecidas com isso:
public class Pessoa{
@EmbeddedId
private PessoaPK pk; // classe mapeia 'id' e 'cidade'
@ManyToOne
@JoinColumns(
@JoinColumn(name="empresa_id"), @JoinColumn(name="cidade")
)
private Empresa empresa; //o mapeamento para essa classe usa o mesmo campo que o mapeamento para a PK, ou seja, cidade é PK e FK
// ...
}
public class Empresa{
@EmbeddedId
private EmpresaPK pk; // Encapsula 'id' e 'cidade'
// ...
}
Quando executo o JPA (hibernate), ele reclama que a cidade está sendo usada em dois lugares.
Nao posso colocar insertable=“false” updatable=“false” na PK pq, bem… ela é a PK.
Nao posso colocar insertable=“false” updatable=“false” na FK, pois preciso inserir o ID da empresa, e nao posso mapear apenas um dos dois campos de FK com insertable=“false” updatable=“false”…
Alguem faz alguma ideia de como posso fazer essa implementacao sem usar JDBC puro? Nao precisa ser JPA + Hibernate, mas seria interessante se fosse ^^
Esse cara teve um problema semelhante ao meu:
Obrigado!