hibernate级联操作详解
生活随笔
收集整理的這篇文章主要介紹了
hibernate级联操作详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
級聯操作 一.簡單的介紹 cascade和inverse (Employee – Department) l Casade用來說明當對主對象進行某種操作時是否對其關聯的從對象也作類似的操作,常用的cascade: none,all,save-update,delete, lock,refresh,evict,replicate,persist, merge,delete-orphan(one-to-many)。一般對many-to-one,many-to-many不設置級聯,在和中設置級聯。 l inverse表“是否放棄維護關聯關系”(在Java里兩個對象產生關聯時,對數據庫表的影響),在one-to-many和many-to-many的集合定義中使用,inverse=”true”表示該對象不維護關聯關系;該屬性的值一般在使用有序集合時設置成false(注意hibernate的缺省值是false)。 one-to-many維護關聯關系就是更新外鍵。many-to-many維護關聯關系就是在中間表增減記錄。 注: 配置成one-to-one的對象不維護關聯關系 二,屬性的解析 class元素的lazy屬性設定為true,表示延遲加載,如果lazy設為false,則 表示立即加載。以下對這二點進行說明。 立即加載:表示Hibernate在從數據庫中取得數據組裝好一個對象(如學生1)后, 會立即再從數據庫取得數據組裝此對象所關聯的對象(如學生證1)。 延遲加載:表示Hibernate在從數據庫中取得數據組裝好一個對象(如學生1)后, 不會立即再從數據庫中取得數據組裝此對象所關聯的對象(如學生1), 而是等到需要時,才會從數據庫取得數據組裝此關聯對象。 元素的cascade屬性表明操作是否從父對象級聯到被關聯的對象, 它 的取得可以是以下幾種: none:在保存,刪除或修改當前對象時,不對其附屬對象(關聯對象)進行級聯 操作。它是默認值。 save-update:在保存,更新當前對象時,級聯保存,更新附屬對象(臨時對象, 游離對象)。 delete:在刪除當前對象時,級聯刪除附屬對象。 all:所有情況下均進行級聯操作,即包含save-update和delete操作。 delete-orphan:刪除和當前對象解除關系的附屬對象。 元素的fetch屬性的可選值是join和select,默認是select。 當fetch屬性設定為join時,表示連接抓取(Join fetching):Hibernate通過 在Select語句中使用outer join(外連接)來獲得對象的關聯實例或者關聯集合。 當fetch屬性設定為select時,表示查詢抓取(Select fetching):需要另外發 送一條Select語句抓取當前對象的關聯實體或集合。 三。代碼練習轉載于:https://my.oschina.net/chengzz/blog/760406
總結
以上是生活随笔為你收集整理的hibernate级联操作详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mongoDB的副本机制
- 下一篇: 死锁示例代码