![](/img/trans.png)
[英]On delete CASCADE is not working in manyToMany mapping in hibernate
[英]Spring MVC + HIbernate ManyToMany mapping , delete cascade self join
我有两张桌子
1 | 用户1
2 | 用户2
user_id | helper_id
1 | 2
user_id和helper_id是用户表中的引用ID。
现在,当我删除用户1时,该条目将从Mapping表中删除。 但是当我删除2时,我得到例外说法,它已在映射表中引用
这是我的实体代码
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name = "user_helper", joinColumns = {
@JoinColumn(name = "user_id", updatable = false)}, inverseJoinColumns = {
@JoinColumn(name = "helper_id", updatable = false)})
private Set<Users> helpers;
我错过了什么
删除帮助程序时,必须先从引用它的任何用户中删除它。 这将从连接表中清除对其的引用。
user.getHelpers().remove(helper);
session.delete(helper);
我通过在Users实体中添加一个映射行来实现它
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name = "user_helper", joinColumns = {
@JoinColumn(name = "helper_id", updatable = false)}, inverseJoinColumns = {
@JoinColumn(name = "user_id", updatable = false)})
private Set<Users> users;
在删除之前,我清除用户
userEntity.getUsers().clear(); // so, if there are any users associated with helpers, it will be cleared from mapping table
userEntityDAO.delete(userEntity);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.