Hibernate 設定檔 細節 cascade inverse

來源:互聯網
上載者:User

標籤:hibernate 配置 關係caca

今天寫東西,在配置關係時 ,隨後就將cascade 配置, 而且配的值是false . 尼瑪 ,結果很悲催,已啟動就報錯 ,弄得我雲裡霧裡的,後來仔細檢查發現原來是cascade在做該。現總結一下。順便複習一下inverse .

1.cascade 層疊,有了它我們在操作刪除和更新的時候會更加方便。只要在cascade的源頭插入或者刪除,所有cascade 的關係就會被動的插入或者刪除。cascade 有一個值很重要,saveOrUpdate ,Hibernate根據這個屬性值來判斷一個對象時插入還是更新,如果這個對象的id 不存在那麼就是insert ,否則就是update .

 

2.inverse 反轉 。預設是false,就是說兩端都來維護關係。這個意思就是說,如果一個student,teacher 表 。當一方在hbm的配置中set 中指定cascade 為true時,即表示關係由另一方來維護,換言之,甲方中的設定檔中設定cascade 為true,那麼此時在甲方插入一條資料時不會影響乙方了。只有當乙方插入或刪除資料時才會對甲方的進行操作。

所有在兩方都配置cascade是不對的,一般情況下都將關係設定在多的一方。

 

3.cascade和inverse的區別

總結:cascade定義的是關係兩端對象到對象的級聯關係,而inverse定義的是關係和對象的級聯關係。

兩者的取值有:all  :sava+update+delete

none :所有的情況下都不進行級聯操作。這是預設值

save-update:在執行sava /update/saveOrUpdate是進行級聯操作

delete :在執行delete時執行級聯操作。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.