cascade幾種取值:
取值 | 說明 |
---|---|
save-update | 級聯保存(load以後如果子對象發生了更新,也會級聯更新). 但它不會級聯刪除 |
delete | 級聯刪除, 但不具備級聯保存和更新 |
all-delete-orphan | 在解除父子關係時,自動刪除不屬於父對象的子對象, 也支持級聯刪除和級聯保存更新 |
all | 級聯刪除, 級聯更新,但解除父子關係時不會自動刪除子對象 |
delete-orphan | 刪除所有和當前對象解除關聯關係的對象 |
none | … |
級聯保存和級聯更新總是集合在一起的, 所以沒單獨的save 或 update
我通常會用到none,save-update,all-delete-orphan,而且還是在一對多和多對多的情況
- none就不用說了,在保存,更新,刪除當前對象時,忽略其關聯的對象
- save-update:在保存和更新當前對象的時候,級聯保存,更新關聯對象,在多對多的情況下用的很多,而且一般 不用於一對多,一對多我通常會採用none或者all-delete-orphan
- delete 刪除當前對象,級聯刪除關聯的對象,我從來單獨沒用過
- all 也就是save-update+delete,另外對當前對象執行evict和lock時對關聯對象也執行evict和lock,我從來沒單獨用過
- delete-orphan 刪除所以和當前對象解除關聯的對象,我從來沒單獨用過
- all-delete-orphan 也就是all+delete-orphan,根據需求,我在一對多中經常使用