ManyToMany não grava na JoinTable

1 resposta
biroska

Tenho três tabelas:
FaturamentoGrupo , SubFatura e FaturamentoGrupoSubFatura de junção,

Na SubFatura

@ManyToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL) @JoinTable(name="EMP_FATURAMENTOGRUPOSUBFATURA", joinColumns = @JoinColumn(name="CDSUBFATURASEQ"),inverseJoinColumns = @JoinColumn(name="CDFATURAMENTOGRUPOSEQ")) private List<FaturamentoGrupoEntity> listaFaturas;

Na FaturamentoGrupo

@ManyToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL) @JoinTable(name="EMP_FATURAMENTOGRUPOSUBFATURA", joinColumns = @JoinColumn(name="CDFATURAMENTOGRUPOSEQ"),inverseJoinColumns = @JoinColumn(name="CDSUBFATURASEQ")) private List<SubFaturaEntity> listaSubfaturas;

Está gravando nas FaturamentoGrupo e SubFatura, mas não grava na de junção (FaturamentoGrupoSubFatura).

Alguém sabe me dizer o que estou fazendo de errado?

valeu

1 Resposta

A

Acredito que seja um problema no mapeamento da sua join table

Seguindo a documentação do Hibernate: http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#entity-mapping-association

@Entity public class Employer implements Serializable { @ManyToMany( targetEntity=org.hibernate.test.metadata.manytomany.Employee.class, cascade={CascadeType.PERSIST, CascadeType.MERGE} ) @JoinTable( name="EMPLOYER_EMPLOYEE", joinColumns=@JoinColumn(name="EMPER_ID"), inverseJoinColumns=@JoinColumn(name="EMPEE_ID") ) public Collection getEmployees() { return employees; } ... } @Entity public class Employee implements Serializable { @ManyToMany( cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "employees", targetEntity = Employer.class ) public Collection getEmployers() { return employers; } }

Repare na configuração da classe Employee do exemplo acima…ela faz referencia para a propriedade ‘employees’ da classe Employer (e na classe employer vc ja tem configurado quais campos da sua join table deverão ser usados).

Criado 25 de agosto de 2011
Ultima resposta 25 de ago. de 2011
Respostas 1
Participantes 2