salva qualquer Role’s ainda não persistidos, mas usando @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}), não salva?
@ManyToMany(cascade = CascadeType.ALL) não seria equivalente a @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE})?
Pq eu consigo o comportamento desejado (apenas PERSIST e MERGE, mas não REMOVE) só quando uso @Cascade( org.hibernate.annotations.CascadeType.SAVE_UPDATE)?
esse é justamente o texto que eu li e não entendi, pq não funcionou assim. Se fosse assim, eu colocando CascadeType.PERSIST, CascadeType.MERGE ele salvaria os objetos vinculados ainda não persistidos, concorda?
Mas na verdade ele reclama (através de Exception), que o objeto X, tem ligações com objetos Y ainda não salvos…
Isso que não consigo entender.