Spring整合hibernate 双向多对多级联删除问题
来源:互联网 发布:linux快速安装php环境 编辑:程序博客网 时间:2024/06/05 18:07
最近在在做一个项目的时候,遇到关于hibernate的双向多对多级联删除的问题,上网搜索关于多对多删除的解释很少,但是双向多对多级联删除的需求也有很多,花了一整天时间才彻底弄明白级联删除的相关细节问题。下面就我个人理解做相关总结。下面是两个实体类中的多对多的映射关系配置:注意:下面提到的父方和子方是通过inverse属性来设置的,如将inverse属性设置为true,意思是将当前表交给对方表来管理,即当前表为子方。反之,inverse属性为false,即当前表来维护关系。另外,不要将两个表的inverse属性都设置为true,否则会引发错误。Information.hbm.xml文件<set name="users" table="USER_INFORMATION"inverse="false" lazy="false" cascade="none">
<key>
<column name="INID" />
</key>
<many-to-many class="com.ckTime.domain.User" column="UID"/>
</set>user.hbm.xml文件<set name="infos" table="USER_INFORMATION"inverse="true" lazy="false" cascade="none">
<key>
<column name="UID" />
</key>
<many-to-many class="com.ckTime.domain.Information" column="INID"/>
</set>关于双向多对多级联删除需求不同,cascade属性的值也就不一样。首先,先 给还不太清楚cascade属性作用的小伙伴们大概讲解一下:cascade可以设置的值有 none,all,delete,save-update等等:none:只删除父方和中间表的相关信息all:级联删除或更新父方和子方表中的信息delete:级联删除父方和子方的所有信息,包括中间表的信息save-update:级联保存或修改子方和父方表中的信息不同需求设置cascade值不同,下面应对不同需求,给出相关的cascade值:① .级联保存或修改操作:cascade=“save-update”;②.删除父方表和中间表的信息,但不删除子方表的信息:cascade=“none”;③.既要做删除操作,还要做更新操作:cascade=“all”;④.删除子方和父方表中的所有信息:cascade=“delete”;小伙伴们可以根据自己的需求来选择设置不同的值,如有解释不当的地方,请指正,最后希望我的文章能帮到大家。
1 0
- Spring整合hibernate 双向多对多级联删除问题
- Hibernate多对多级联删除的问题
- 多对多删除问题 Spring+Hibernate
- Hibernate多对多级联查询
- Hibernate多对多级联 注解
- Hibernate双向一对多级联添加
- Hibernate 一对多级联删除
- Hibernate 一对多级联删除
- Hibernate 一对多级联删除
- Spring整合Hibernate问题
- Spring对Hibernate的整合
- Hibernate如果进行一对多级联删除
- hibernate一对多、多对多级联保存与级联删除与修改外键
- hibernate多对多级联保存
- 【Hibernate】多对多(双向)
- hibernate 双向一多对关联 删除一端时级联删除多端
- Spring+SpringMvc+Hibernate整合问题
- MyBatis 多对多级联
- hibernate annotation 关联关系
- QPushButton的hover鼠标悬停效果
- 如何给1000万条记录排序,每条记录都是7位的整数
- NYoj 666 内部收益率 二分
- Struts2入门
- Spring整合hibernate 双向多对多级联删除问题
- seajs模块化前端js代码1.hello world
- ContextLoaderListener的作用
- java 向指定 URL 发送Get\Post方法的请求
- charles通过breakpoints修改web请求
- ionic 使用localStorage做本地化缓存
- Theme.AppCompat无全屏主题解决办法
- [caffe]深度学习之图像分类模型AlexNet解读
- 在Javascript中 声明时用"var"与不用"var"的区别