cascade级联操作及属性介绍

来源:互联网 发布:淘宝上找同款 编辑:程序博客网 时间:2024/06/04 23:30

级联是用来设计一对多关系的。例如一个表存放老师的信息:表A(姓名,性别,年龄),姓名为主键。还有一张表存放老师所教的班级信息:表B(姓名,班级)。他们通过姓名来级联。级联的操作有级联更新,级联删除。

在启用一个级联更新选项后,就可在存在相匹配的外键值的前提下更改一个主键值。系统会相应地更新所有匹配的外键值。如果在表A中将姓名为张三的记录改为李四,那么表B中的姓名为张三的所有记录也会随着改为李四。级联删除与更新相类似。如果在表A中将姓名为张三的记录删除,那么表B中的姓名为张三的所有记录也将删除。


1) none :在保存,更新或删除当前对象时,忽略其他关联的对象,它是cascade属性的默认值.


2)save-update : 当通过Session 的 save() , update() 以及saveOrUpdate()方法来保存或更新当时对象时,级联保存所有关联的新建的临时对象,并且级联更新所有关联的游离对象.


3)delete : 当通过Session 的 delete()方法删除当前对象时,级联删除所有关联的对象.


4)all : 包含save-update以及delete的行文. 此外,对当前对象执行evict()或lock()操作时,也会对所关联的持久化对象执行evict()和lock()操作.


5)delete-orphan :删除所有和当前对象解除关联关系的对象.


6)all-delete-orphan :包含all 和 delete-orphan的行

0 0
原创粉丝点击