hibernate级联操作详解
来源:互联网 发布:行知外国语学校好吗 编辑:程序博客网 时间:2024/05/22 18:22
级联操作
一.简单的介绍
cascade和inverse (Employee – Department)
l Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似的操作,常用的cascade:
none,all,save-update,delete, lock,refresh,evict,replicate,persist,
merge,delete-orphan(one-to-many)。一般对many-to-one,many-to-many不设置级联,在<one-to-one>和<one-to-many>中设置级联。
l inverse表“是否放弃维护关联关系”(在Java里两个对象产生关联时,对数据库表的影响),在one-to-many和many-to-many的集合定义中使用,inverse=”true”表示该对象不维护关联关系;该属性的值一般在使用有序集合时设置成false(注意hibernate的缺省值是false)。
one-to-many维护关联关系就是更新外键。many-to-many维护关联关系就是在中间表增减记录。
注: 配置成one-to-one的对象不维护关联关系
二,属性的解析
class元素的lazy属性设定为true,表示延迟加载,如果lazy设为false,则
表示立即加载。以下对这二点进行说明。
立即加载:表示Hibernate在从数据库中取得数据组装好一个对象(如学生1)后,
会立即再从数据库取得数据组装此对象所关联的对象(如学生证1)。
延迟加载:表示Hibernate在从数据库中取得数据组装好一个对象(如学生1)后,
不会立即再从数据库中取得数据组装此对象所关联的对象(如学生1),
而是等到需要时,才会从数据库取得数据组装此关联对象。
<one-to-one>元素的cascade属性表明操作是否从父对象级联到被关联的对象, 它
的取得可以是以下几种:
none:在保存,删除或修改当前对象时,不对其附属对象(关联对象)进行级联
操作。它是默认值。
save-update:在保存,更新当前对象时,级联保存,更新附属对象(临时对象,
游离对象)。
delete:在删除当前对象时,级联删除附属对象。
all:所有情况下均进行级联操作,即包含save-update和delete操作。
delete-orphan:删除和当前对象解除关系的附属对象。
<one-to-one>元素的fetch属性的可选值是join和select,默认是select。
当fetch属性设定为join时,表示连接抓取(Join fetching):Hibernate通过
在Select语句中使用outer join(外连接)来获得对象的关联实例或者关联集合。
当fetch属性设定为select时,表示查询抓取(Select fetching):需要另外发
送一条Select语句抓取当前对象的关联实体或集合。
三。代码练习
<set name="emps" cascade="save-update">
<key column="depart_id"/>
<one-to-many class="Employee"/>
</set>
<set name="students" table="taacher_student" inverse="true"><!-- table是用来指定中间表的属性 -->
<key column="teacher_id"></key><!-- 查找教师id时,链接中间表表的teacher_id -->
<many-to-many class="Student" column="student_id"></many-to-many>
</set>
- hibernate级联操作详解
- hibernate级联操作详解
- Hibernate的级联操作详解(转)
- HIBERNATE中级联操作
- hibernate 级联操作
- hibernate的级联操作
- Hibernate级联操作Cascade
- Hibernate 级联操作 cascade
- hibernate 之 级联操作
- Hibernate级联操作
- Hibernate级联操作 注解
- hibernate的级联操作
- hibernate的级联操作
- hibernate级联操作
- hibernate级联删除操作
- 关于 Hibernate 级联操作
- Hibernate 单项级联操作
- 5.Hibernate级联操作
- zookeeper入门之curator框架--原子性操作
- Python之开发环境的搭建
- 使用 Log4j、ActiveMQ 和 Spring 实现异步日志
- 慕课网二次学习(序)
- Python字符串、列表、字典、元组互转
- hibernate级联操作详解
- CMAKE 学习笔记 (二)
- 虚拟视点图像生成012
- python数据分析3:双色球 单个红和蓝球哪个比例高
- 单机版五子棋(JAVA)
- 高效编程之互斥锁和自旋锁
- 二叉搜索树与双向链表
- 第11周补充(2)职员有薪水了!
- 6.5+3