CASCADE属性的取值

hibernate中CASCADE属性的一些取值,及其含义:

1.none :默认值,Session操作当前对象时,忽略其他关联的对象

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

3.delete-orphan:接触所有和当前对象解除关联关系的对象

   例如:customer.getOrders().clear();

   执行后,数据库中的先前与该customer相关联的order都被删除。

4.save-update:当通过Session的save()、update()及saveOrUpdate()方法更新或保存当前对象

   时,级联保存所有关联的新建的临时对象,并且级联更新所有关联的游离对象

5.persist:当通过Session的persist()方法来保存当前对象时,会级联保存所关联的

   新建的临时对象

6.merge:当通过Session的merge()方法来保存当前对象时,会级联融合所有关联的游离对象

7.lock:当通过Session的lock()方法把当前游离对象加入到Session()缓存中时,会把所有关联的游离对象也加入到

   Session缓存中。

8.replicate:当通过Session的replicate()方法赋值当前对象时,会级联赋值所有关联的对象

9.evict:当通过Session的evict()方法从Session缓存中清除当前对象时,会级联清除所有关联的对象

10.refresh:当通过Session的refresh()方法刷新当前对象时,会级联刷新所有关联的对象,所为刷新是指读取数据库中相应的数据

    然后根据数据库中的最新的数据去同步更新Session缓存中的数据

11.all:包含save-update、persist、merge、delete、lock、replicate、evict及refresh的行为

12.all-delete-orphan:包含all和delete-orphan的行为

原文地址:https://www.cnblogs.com/zitt/p/5073942.html