【求助】Hibernate 注解ManyToMany出错
User.java
/** * @return roles. */
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.LAZY)
@JoinTable(name = "tb_user_role", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
public Set<Role> getRoles() {
return roles;
}
为什么修改user对象的之后,会级联删除关联的role对象啊 ,,搞不懂啊!!!!!!!!!!!!!!!!
------解决方案--------------------我也想知道,顶
------解决方案--------------------表是hibernate生成的,还是你自己建的?如果是自动生成的,那你要修改别的外键属性了。
------解决方案--------------------因为有ManyToMany这个关系,
在你保存user时,你user对象中roles为空,所以hibernate就以为你要删除这个user的roles
个人觉得这个ManyToMany关系你可以不用加,需要的时候查出来就是了。
------解决方案--------------------casecade不要设置级联