ManyToMany - session.refresh() antes do session.saveOrUpdate()

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?

Olá Daniel,

Fiz um post no meu blog sobre o mapeamento many to many, embora vc esteja usando hiernate puro, verá que no post usei hibernate apenas como provide do JPA, mas talvez possa te ajudar, dê uma olhada: http://serjava.blogspot.com.br/2012/05/jpa-manytomany.html

faz refresh antes do persist?