tenho um relacionamento ManyToMany com atributos, sempre que eu faço um updade em alguma das partes, os dados da tabela associativa são excluidos...
Por exemplo, se faço um update em PROCESSO, minha PARTE_RE, é automaticamente excluida, acredito que seja pela @Cascade mal configurada, porem já testei de todos os jeitos, alguem pode me dar uma luz ?
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "PARTE_RE", schema = "SYSJURI",
joinColumns =
@JoinColumn(name = "PROCESSO_ID"),
inverseJoinColumns =
@JoinColumn(name = "PESSOA_ID"))
@Cascade (CascadeType.SAVE_UPDATE)
private Collection<Pessoa> parteRe = new ArrayList<Pessoa>();
@ManyToMany
@Cascade (CascadeType.SAVE_UPDATE)
@JoinTable(name = "PARTE_RE", schema = "SYSJURI",
joinColumns =
@JoinColumn(name = "PESSOA_ID"),
inverseJoinColumns =
@JoinColumn(name = "PROCESSO_ID"))
private Collection<Processo> processoRe = new ArrayList<Processo>();
@Entity
@Table (name = "PARTE_RE")
public class ParteRe implements Serializable{
@EmbeddedId
private ParteRePk chaveComposta;
@Column (name ="FLAG_REU", nullable=false)
private String flagReu;
public ParteRePk getChaveComposta() {
return chaveComposta;
}
public void setChaveComposta(ParteRePk chaveComposta) {
this.chaveComposta = chaveComposta;
}
public String getFlagReu() {
return flagReu;
}
public void setFlagReu(String flagReu) {
this.flagReu = flagReu;
}
///////////////////////////////////////////////////////////////////////////////////////////////
@Embeddable
public class ParteRePk implements Serializable {
@ManyToOne (fetch=FetchType.EAGER)
@JoinColumn (name = "PROCESSO_ID")
@ForeignKey (name = "PROCESSO_RE_FK")
private Processo processo;
@ManyToOne (fetch=FetchType.EAGER)
@JoinColumn (name = "PESSOA_ID")
@ForeignKey (name = "PESSOA_RE_FK")
private Pessoa pessoa;
DAO:
public boolean gravar(Object obj) {
session = HibernateUtil.getSessionFactory().openSession();
try {
session.beginTransaction();
session.saveOrUpdate(obj);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
} finally {
session.close();
}
return true;
}
se alguem tiver alguma ideia,
att.