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的行为