hibernate cascade解释

cascade几种取值:

取值 说明
save-update 级联保存(load以后如果子对象发生了更新,也会级联更新). 但它不会级联删除
delete 级联删除, 但不具备级联保存和更新
all-delete-orphan 在解除父子关系时,自动删除不属于父对象的子对象, 也支持级联删除和级联保存更新
all 级联删除, 级联更新,但解除父子关系时不会自动删除子对象
delete-orphan 删除所有和当前对象解除关联关系的对象
none

级联保存和级联更新总是集合在一起的, 所以没单独的save 或 update

我通常会用到none,save-update,all-delete-orphan,而且还是在一对多和多对多的情况

  1. none就不用说了,在保存,更新,删除当前对象时,忽略其关联的对象
  2. save-update:在保存和更新当前对象的时候,级联保存,更新关联对象,在多对多的情况下用的很多,而且一般 不用于一对多,一对多我通常会采用none或者all-delete-orphan
  3. delete 删除当前对象,级联删除关联的对象,我从来单独没用过
  4. all 也就是save-update+delete,另外对当前对象执行evict和lock时对关联对象也执行evict和lock,我从来没单独用过
  5. delete-orphan 删除所以和当前对象解除关联的对象,我从来没单独用过
  6. all-delete-orphan 也就是all+delete-orphan,根据需求,我在一对多中经常使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章