// Estrutura
public class LancamentoCc implements Serializable,
Comparable<LancamentoCc>,Cloneable{
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="str_nro_processo",referencedColumnName="nref", insertable=false,updatable=false)
private AbreProcesso processo;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="int_movimento_conta", insertable=false, updatable=false)
private
MovimentoCc movimento;
}
public class AbreProcesso implements
Serializable,Cloneable {
@OneToMany(mappedBy="processo", cascade =
CascadeType.ALL,fetch=FetchType.EAGER, orphanRemoval = true)
@Fetch(FetchMode.SUBSELECT)
protected
Collection<LancamentoCc> movimentos = new
ArrayList<LancamentoCc>();
}
public class MovimentoCc implements Serializable{
@OneToMany(mappedBy="movimento", cascade = CascadeType.ALL,
fetch = FetchType.EAGER ,orphanRemoval=false)
@Fetch(FetchMode.SELECT)
private
List<LancamentoCc> lancamentos = new
ArrayList<LancamentoCc>();
}
// Dessa forma
ocorre o erro
public String delete(ContaReceber conta) {
public String delete(ContaReceber conta) {
try{
dao = new
LancamentoContaDao<ContaReceber>(HibernateUtil.getSession(),
ContaReceber.class);
dao.delete(conta);
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
// Dessa forma funciona
public String delete(ContaReceber conta) {
try{
Dao<AbreProcesso> dao = new
Dao<AbreProcesso>(HibernateUtil.getSession(), AbreProcesso.class);
AbreProcesso processo =
conta.getProcesso();
processo.getMovimentos().remove(conta);
dao.save(processo);
}catch (Exception e) {
e.printStackTrace()
}
return null;
}