hibernate配置级联删除
来源:互联网 发布:英语谐音软件 编辑:程序博客网 时间:2024/05/21 12:45
一个版本,绑定多个项目. StoneosVersionProject表用于配置版本与项目的关联关系。
版本对象的hibernate配置文件中设置一对多关系如下:
<!-- 版本和项目关系--> <set name="statProjects" inverse="true" cascade="delete"> <key> <column name="stoneos_version_id" /> </key> <one-to-many class="htf.dbmgmt.filemanage.StoneosVersionProject" /> </set>
set节点的inverse和cascade不同配置下,hibernate的行为如下
1. inverse=true, cascade=delete
版本被删除,版本与项目的关联关系记录被删除
2. inverse=false, cascade=delete
版本被删除时,hibernate尝试置关联关系为当前版本的记录,版本字段为null. 当置位失败时,版本不能删除
3. inverse=false
同2
4. inverse=true
版本被删除,版本与项目关联关系记录未删除,未更新
5. cascade=delete
同2 (因为inverse默认为false)
总结:
Inverse:负责控制关系,默认为false,也就是关系的两端都能控制,但这样会造成一些问题,更新的时候会因为两端都控制关系,于是重复更新。一般来说有一端要设为true。
Cascade:负责控制关联对象的级联操作,包括更新、删除等,也就是说对一个对象进行更新、删除时,其它对象也受影响,比如我删除一个对象,那么跟它是多对一关系的对象也全部被删除。
0 0
- hibernate配置级联删除
- Hibernate中配置级联删除
- 删除级联hibernate级联删除
- Hibernate级联删除
- Hibernate实现级联删除
- Hibernate的级联删除
- Hibernate实现级联删除
- Hibernate 级联删除
- hibernate级联删除问题
- hibernate级联删除
- Hibernate 级联删除
- hibernate级联删除
- Hibernate级联删除
- Hibernate级联删除
- Hibernate级联删除问题
- hibernate注解 级联删除
- hibernate级联删除
- hibernate级联删除
- WebService调度超时
- STL源码笔记(15)—堆和优先级队列(二)
- JS文件传值问题
- Ubuntu 修改盘的标号
- flyway的使用
- hibernate配置级联删除
- 一致性哈希算法
- linux 如何禁止通过IP访问网站,只让用域名访问网站
- iOS block的简单说明
- 数据标准化和归一化
- AYITACM2016省赛第三周M - Beijing Guards(贪心+二分)
- 判断设备是否插入耳机
- Java学习之分页查询
- mysql笔记——权限