Hibernate---inverse,cascade总结
来源:互联网 发布:mit公开课 矩阵理论 编辑:程序博客网 时间:2024/05/29 11:54
日常项目中,我们用的比较多的是many-to-one模式,因此做了上述的一个总结。
其实那只是hibernate的特性和使用规则,真正项目中要看如何灵活配置和应用。可以从业务需求,代码性能和代码量上考虑。
对于业务需求,比如在一些应用中,我们提供了删除用户和部门的功能但是实际要求是当删除部门时,不能将用户的数据真正删除掉,那么此时就要考虑,在部门那一端,不能设置cascade=delete或者all
从性能上考虑,无非是减少session的开启次数以及同数据库的交互次数,对于session开启次数的讨论不在本文,但是为了减少和数据库通信次数,那么就要控制发出的sql语句数。举个例子:
Seal 和 BranchInfo 如果在set中设置inverse=false那么保存或更新branchinfo是将会级联更新与之相关的所有seal记录,但是如果交给seal去维护关系,当保存seal时去更新关系,大家可以做一个测试,此时不会发出更新语句,会发出如下语句,注意红色部分:
Hibernate: insert into tbranchinfo (address, depname, id) values (?, ?, ?)
Hibernate: insert into tseal (sealName, branchInfoId, id) values (?, ?, ?)
Hibernate: insert into tsealmodel (id) values (?)
之所以能保存tbrachinfo是因为在many-to-one中设置了cascade=save-update。
综上我们建议让many-to-one一端(就是多的一端)去维护关系,级联保存一的一端,同时配合在一的一端设置lazy=true延迟加载集合对象来优化性能。
当然对于一级和二级缓存,用的较多的是一级缓存。二级缓存需要根据实际项目来设置。
- Hibernate---inverse,cascade总结
- 【Hibernate】inverse和cascade
- Hibernate级联--cascade,inverse
- hibernate inverse cascade详解
- hibernate inverse cascade
- hibernate inverse cascade
- Hibernate-----cascade VS inverse
- hibernate 中的Inverse Cascade
- hibernate框架中inverse和cascade的使用总结
- Hibernate中Cascade和Inverse
- hibernate 的cascade和inverse
- Hibernate 的 Inverse 和 cascade
- Hibernate中cascade和inverse
- hibernate inverse 和cascade讲解
- Hibernate中cascade和inverse
- Hibernate fetch lazy cascade inverse
- hibernate中inverse与cascade
- Hibernate中的cascade和inverse
- assert宏
- htmlParser.Net解析yahoo搜索结果2
- 计算机组成与体系结构(一)
- oracle 培训笔记[1]
- (1)IO流的操作
- Hibernate---inverse,cascade总结
- (2)字符流
- (3)字节流
- (4)File的操作
- (5)IO包中的其他对象
- SPICE - Write Record to Output File
- 01_周总结
- 01_月计划
- 01_学期总结