hibernate 之 cascade 和 inverse

來源:互聯網
上載者:User

標籤:cascade   blog   級聯   引用   code   其他   關係   推薦   刪除   

一. Cascade 級聯:

  • many-to-one 中使用cascade:
  1. none : 不使用級聯  (預設)
  2. save-update :當儲存和更新的級聯操作並關聯對象 (推薦)
    <many-to-one name="teacher" column="tid" cascade="save-update"/>

    當儲存多的一端資料時,發現多的一端資料所關聯的一的一端的資料沒有儲存時,如果設定了cascade=save-update,那麼會先儲存一的一端,再儲存多的一端。

  3. delete: 串聯刪除關聯對象 (不推薦)

    當cascade=delete時,刪除多的一端的資料時,會串聯刪除一的一端的資料。如果一的一端資料沒有被其他引用時可以刪除,如果被其他資料引用,那麼刪除將會失敗,所以many-to-one 不建議使用 cascade=delete。

  4. all: 當執行cud時候都會級聯操作關聯對象。

 

  • one-to-many中使用cascade:
  1. none:不使用級聯 (預設)
  2. save-update當儲存和更新的級聯級聯操作對象  (不推薦)
    <set name="students" cascade="save-update">            <key column="tid"></key>            <one-to-many class="cn.sxt.vo.Student"/>        </set>

    當為一的一端設定關聯對象時,儲存一的一端的資料會級聯儲存多的一端,但是會出現N條更新語句,效率較低,所以不推薦使用。

  3. delete:串聯刪除關聯對象 (推薦)

    當刪除一的一端資料時,會級聯將對的一端資料全刪除。
  4. all:當執行cud時都會級聯操作關聯對象。

 

二. inverse:反轉,用來控制在關聯映射中,有集合時,由哪一端來控制(管理)關係(外鍵)。Inverse=true 表示由另外一端來控制關係,inverse=false表示由當前端來控制關係。在多的一端只要設定了關聯關係,那麼預設多的一端就會管理關聯性。

hibernate 之 cascade 和 inverse

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.