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,根據需求,我在一對多中經常使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章