Tenho duas tabelas
Nota
[code]
@Id
private String nota_id;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="id_empresa", updatable=true, insertable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Empresa empresa;
@OneToMany(mappedBy="nota",fetch=FetchType.LAZY)
@Cascade(CascadeType.ALL)
private Collection<Itens> itens;[/code]
e a classe Itens
@Id
private String id_item_nota;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="id_item_nota", updatable=true, insertable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Nota nota;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="id_item_empresa", updatable=true, insertable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Empresa empresa;[/code]
O relacionamento com empresa esta ok pois ela só faz relacionamento OneToMany, agora a duvida esta na parte do Item pois o id_item_nota tem de ser chave primária e ao mesmo tempo faz um relacionamento ManyToOne com Nota.
Como eu faço esse relacionamento no hibernate? dessa maneira que eu fiz não vai funcionar pois o hibernate identifica duas colunas com o mesmo nome e retorna a seguinte exception
[code]Exception in thread "AWT-EventQueue-0" org.hibernate.MappingException: Repeated column in mapping for entity: br.com.otto.model.bean.Sfved3 column: ed3chave (should be mapped with insert="false" update="false")
at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:652)
at org.hibernate.mapping.PersistentClass.checkPropertyColumnDuplication(PersistentClass.java:674)
at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:696)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:450)
at org.hibernate.mapping.RootClass.validate(RootClass.java:192)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1108)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1293)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
Aproveitando o post e como eu faria por exemplo se a empresa e a nota fossem chaves primarias compostas e extrangeiras na classe item?
Obrigado.