级联操作的作用:当程序员进行某个操作(添加/修改/删除...),我们希望可以自动的完成一些相关的update,delete等操作。在hibernate中,我们通过在xxx.hbm.xml中设置属性的cascade,使2个数据库相关联,这样就使得当某个数据库变化时,另一个数据库也能进行相应的变化
我们一般在关系映射的一对多关系中的一中进行级联
常用的cascade取值有:
save-update: 级联保存(load以后如果子对象发生了更新,也会级联更新). 但它不会级联删除
delete: 级联删除, 但不具备级联保存和更新
all-delete-orphan: 在解除父子关系时,自动删除不属于父对象的子对象, 也支持级联删除和级联保存更新.
all: 级联删除, 级联更新,但解除父子关系时不会自动删除子对象.
delete-orphan:删除所有和当前对象解除关联关系的对象
---save-update中,只有将子对象放入了父对象的set集合中,才会在保存父对象时自动修改子对象,否则子对象不会变化