处理hibernate多重级联关系下的删除解决方法
来源:互联网 发布:产品淘宝上线流程 编辑:程序博客网 时间:2024/04/29 04:00
set节点之cascade属性
all : 对所有操作都进行级联
none : 对所有操作都不进行级联
save-update : 执行更新操作时级联
delete : 执行删除操作时级联
inverse设为true,由many一方删除
inverse是“反转”的意思,表示关联关系的控制权。
为true,表示由对方负责关联关系的添加和删除;
为false,表示由自己负责维护关联关系
//人员
person
(
id int identity(1,1) primary key,
email varchar(50)
)
//邮箱
email
(
id int identity(1,1) primary key,
personid int, //对应person表的id,表示这个邮箱属于某个人
address varchar(50) //email地址
)
//信件
letter
(
id int identity(1,1) primary key,
emailid int, //对应email表的id,表示这封信属于某个邮箱
from address varchar(50), //发送者
title varchar(20), //标题
content varchar(20) //内容
)
利用hibernate,如何进行多重级联删除,即:删除一个人,则同时删除他对应的邮箱及邮箱里的信件
那么利用hibernate只需这样
最终解决方法是person中的xxx.hbm.xml加上 <set name="实体名(person)" inverse="true" cascade="delete"> </set>
然后在email中的也加上 <set name="实体名(email)" inverse="true" cascade="delete"> </set>
简单的说就是在主表的xxx.hbm.xml的 <set> </set>的属性中加上cascade="delete"它,就可以级联删除
person是email的主表,而email又是letter的主表
这样配置是不会违反题目意思的
也就是说在Person中加cascade="delete"只会删除email
而email中加这个属性也是一样
并且三张表都有关系
- 处理hibernate多重级联关系下的删除解决方法
- Hibernate的级联删除
- Hibernate的级联删除
- hibernate一对一映射关系级联删除
- 有关hibernate一对多关系的级联保存和级联删除例子
- 有关Hibernate的级联删除
- hibernate 级联删除的问题
- hibernate级联删除的注意事项
- 关于hibernate的级联删除
- hibernate的级联删除特性
- 删除级联hibernate级联删除
- hibernate 级联删除时候的两种情况 之(二) 删除从表,无法删除关系表
- Hibernate 父子关系的级联保存
- hibernate 的级联保存和关联关系
- hibernate 的级联保存和关联关系
- 12-hibernate关联关系的级联操作
- Hibernate (cascade)级联关系
- Hibernate级联关系问题
- (转)看盘基本技巧
- 列一下自己的 linux 软件工作环境,你的是如何呢?
- IIS+tomcat 整合
- Java 反射
- windows与unix体系结构图(图)
- 处理hibernate多重级联关系下的删除解决方法
- java 开源的jsp标签
- 主细表数据录入原则.
- 科学计算——概率统计计算机模拟——Python
- 文件内容替换---郁闷的结果
- (转)K线图基本知识
- apache + tomcat 负载均衡 和 集群
- Squid是一种在Linux系统下使用的优秀的代理服务器软件。
- C++win32 SDK下面如何修改应用程序的图标