网友一:按照官方给出的字面意思是:如果删除关系,是否删除关系上的实体,true表示会删除,false表示不删除。我们来举个例子说明一下,现在分别有User和Address两个实体,User类上有一个addresses的字段,表示引用多个Address实例,User和Address是一对多关系。大致的代码如下:
public class User{
@OneToMany(orphanRemoval = true)
private Set
addresses;
//...
}
public class Address{
//...
}
我们操作User实体,并删除一个address实例。
User user = em.find(User.class,1L);
Address address = em.find(Address.class,1L);
user.getAddresses().remove(address);
em.save(user);
如果orphanRemoval = true,那么这个操作会删除address对象,如果为false,则会删除他们的关系,将address对user的引用设置为null。
不过我自己做过相应的测试,发现无论如何设置,它并不会生效。
网友二:测试一下网友一的看法,首先用单向一对多关系测试。没有设置 CascadeType.all 或者 remove,否则只会更新关联字段为null。
//单向一对多,user里有addresses
public class User{
//@OneToMany(orphanRemoval = true)//此时移除user里的某一个address会级联更新该userId字段为null
//@OneToMany(orphanRemoval = false)//此时移除user里的某一个address会级联更新该userId字段为null
//@OneToMany(cascade=CascadeType.ALL,orphanRemoval = true)//此时移除user里的某一个address会级联删除该address
//@OneToMany(cascade=CascadeType.ALL,orphanRemoval = false)//此时移除user里的某一个address会级联更新该userId字段为null
@JoinColumn(name="userId")
private Set
addresses;
//...
}
//address里没有user
public class Address{
//...
}
再来测试双向一对多的关系。
//双向一对多的一端,user里有addresses
public class User{
//@OneToMany(orphanRemoval = true,mappedBy="user",)//此时移除user里的某一个address无任何效果
//@OneToMany(orphanRemoval = false,mappedBy="user",)//此时移除user里的某一个address无任何效果
//@OneToMany(cascade=CascadeType.ALL,orphanRemoval = true,mappedBy="user",)//此时移除user里的某一个address会级联删除该address
//@OneToMany(cascade=CascadeType.ALL,orphanRemoval = false,mappedBy="user",)//此时移除user里的某一个address无任何效果
//注解mappedBy表示自己不维护关系,由Address来维护关系
private Set
addresses;
//...
}
//双向一对多的多端,address里有user
public class Address{
@ManyToOne
@JoinColumn(name="userId")
private User user;
//...
}
在双向关联关系里,让一端维护关系所以设置失效了???但是设置cascade=CascadeType.ALL,orphanRemoval=true之后又可以删除。这点还得研究一下
关键词: orphanRemoval=true
凡注有"实况网-重新发现生活"或电头为"实况网-重新发现生活"的稿件,均为实况网-重新发现生活独家版权所有,未经许可不得转载或镜像;授权转载必须注明来源为"实况网-重新发现生活",并保留"实况网-重新发现生活"的电头。
热点
头条
- 裸票价格创近5年来最低 中秋国内航线机票价格降至洼地
- 中国经济增速仍保持较强动力 在全球进出口版图中的地位将进一步的提升
- 油价显著下跌无疑对依赖原油出口的产油国不利 产油国释放明确稳定意图
- 对标“国字号”你追我赶 中国电子商务成为畅通国内国际双循环的关键动力
- 续两年迈过80分门槛 知识产权保护社会满意度整体步入良好阶段
- RCEP生效实施为地区和世界经济注入新动能 为中国企业迎来了高质量发展的新机遇
- 众多企业技术产品“上新” 元宇宙为观众带来了身临其境的体验感
- 实施19项接续政策形成组合效应 四部门加力巩固经济恢复发展基础
- 12个行业PMI回升 8月制造业五大分类指数一平三升一降
- 服贸会“朋友圈”不断扩大 中国市场规模非常巨大国际吸引力大增