hibernate的级联、延迟加载、inverse属性
来源:互联网 发布:在淘宝开网店赚钱吗 编辑:程序博客网 时间:2024/05/16 17:01
hibernate的级联是用来说明数据库中二个表之间的相互关系(one---to ---one, one ---to---many, many---to---many)。当对主对象做某种操作时,是否对其相关联的子对象也做相对应的操作。
常见的级联(cascade)有:
(1) none: 表示在保存、修改、删除时不对其级联对象不做任何的操作,它是默认值。
(2)save-update:表示在保存和更新时,级联保存、更新附属对象。
(3)delete:表示在删除当前对象时,级联删除附属对象。
(4)all:表示所有情况下均进行级联操作,比如:save-update, delete操作等。
(5)delete--orphan: 表示删除当前对象的同时,删除与当前对象解除关系的孤儿对象。(仅限于用在一对多上面。)
hibernate的延迟加载(Lazy load):这种技术被广泛的运用,这种延迟加载能够保证应用只有在需要的时候才去数据库抓取相应的数据记录,通过延迟加载技术能够避免过多,过早的加载数据库表中的数据,从而减少应用内存的开销。hibernate的延迟加载实质上是一个代理模式的运用,当程序通过hibernate装载一个实体时,默认情况下hibernate不会马上去抓取它的集合属性、关联实体所对应的记录。而是通过一个代理来生成这些集合属性,和关联实体,这就是代理的优势。
例如: 在一个级联关系:部门-----员工(one---many)的表中,当进行一些操作时,要想优化它的性能就把lazy设为true。
hibernate的inverse属性:Inverse是双向关系中的基本概念,当然对于多数实体我们并不需要双向关联,更多的是选择单项关联。inverse的使用或设置不当会导致性能的下降,既会产生多余的sql,甚至会有jdbc异常产生。例如:在双向关联当中,如果双放inverse都设置为true,那么双方将都不会维护关系的更新,如果双方inverse都设置为false的话,必然后导致双方维护同一个关系。所以双向关联中,最好一端inverse=true,一端inverse=fase。一般情况下会把inverse=fase放在many端。
- hibernate的级联、延迟加载、inverse属性
- SSH框架之Hibernate的inverse属性、cascade级联操作
- hibernate 延迟加载 级联 删除
- hibernate 之《lazy》延迟加载和inverse
- Hibernate属性延迟加载
- 【Hibernate】的Inverse属性
- Hibernate 集合属性的延迟加载
- Hibernate集合属性的延迟加载
- Hibernate 的延迟加载【lazy】属性
- Hibernate延迟加载之属性延迟加载
- Hibernate级联--cascade,inverse
- Hibernate 延迟加载类属性
- Hibernate集合映射中的inverse属性以及cascade级联
- Hibernate延时加载---集合属性的延迟加载
- hibernate的级联属性
- Hibernate inverse的属性介绍
- 【Hibernate】(4)Hibernate的多表操作、级联操作与延迟加载
- hibernate的延迟加载
- Problem 59 GCC密切相关的一些环境变量?
- C# 线程间操作无效: 从不是创建控件...的解决办法
- 浅谈Overload和Override的区别
- Android4: 动态切换界面风格
- /*题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
- hibernate的级联、延迟加载、inverse属性
- 策略模式与工厂模式比较
- Binding(一)——Binding基础
- 【JAVA】Class.forName用法以及和new的区别
- Problem 60 关于解决X11的错误的问题?
- CASE WHEN ELSE END的一个用法
- C++ strings(字符串)详解
- HDOJ 1114 Piggy-Bank
- 基于FMS(Flash Media Service)的多人视频聊天