Estava com o um problema de org.hibernate.AssertionFailure: collection was not processed by flush quando tentava salva um usuário no banco.
Para resolver esse problema eu modifiquei a sequencia de persisitência para que antes de fazer o update o sistema realiza-se um refresh na sessão.
[code]session.refresh(o);
session.saveOrUpdate(o);
session.flush();
trans.commit();
session.close();[/code]
Até ai tudo bem … mas acontece que as relações @ManyToMany pararam de funcionar. Não consigo mais salva-las.
@ManyToMany(cascade = { CascadeType.REFRESH, CascadeType.PERSIST }, fetch = FetchType.LAZY, targetEntity = SysDepartment.class)
@JoinTable(name = "SYSTB_Department_users",
joinColumns = {@JoinColumn(name="users_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name="departments_id", referencedColumnName = "id")}
)
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
public Set<SysDepartment> getDepartments() {
if(departments == null) {
departments = new LinkedHashSet<SysDepartment>();
}
return departments;
}
alguém tem alguma idéia?