2011-10-30 102 views
4

的區別是什麼@OnDelete(action=OnDeleteAction.CASCADE)cascade=CascadeType.REMOVE休眠:OnDelete VS級聯= CascadeType.REMOVE

之間我讀到這裏:Is there an equivalent annotation for OnDelete in JPA2@OnDelete(action=OnDeleteAction.CASCADE)級聯將由DB進行處理,同時與cascade=CascadeType.REMOVE級聯將被處理由ORM(Hibernate)完成。

  1. 你能解釋一下Hibernate處理和數據庫處理之間有什麼區別嗎? 「數據庫」是如何完成的?

  2. 另外,我想知道爲什麼我應該關心差異。我的意思是,我爲什麼要選擇另一種態度。

  3. 最後一個問題是,看着OnDelete javadoc,我想知道爲什麼它什麼都沒說,爲什麼我應該使用它(順便說一句,繼承路徑在哪裏?)。那麼記錄這些點在哪裏?

回答

0

1,有些數據庫支持級聯選項和一些數據庫不:如果數據庫支持級聯,則Hibernate會相應創建模式,讓數據庫來處理級聯。

2-如果數據庫句柄級聯使用它,其他副Hibernate必須查詢數據庫,這是一個性能的損失。

3-No idea