1. 程式人生 > >hibernate 級聯刪除時候的兩種情況 之(二) 刪除從表,無法刪除關係表

hibernate 級聯刪除時候的兩種情況 之(二) 刪除從表,無法刪除關係表

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

其中從表是關係被維護端:

 

Hibernate實現多對多關係對映有兩種方法:
1.通過配置兩個一對多來實現多對多,既三張資料表,三個實體,同時配置<component>元件模組,唯一缺點是要同時實現這個外來鍵中間表的增刪查改功能.
2.通過配置雙方的<set>模組來實現,同時兩個實體的bo物件都有對方的Set集合,而inverse必須設定主控方為false,被控方為inverse=true,如果雙方都為true(即都為被控方)那就沒人來維護關係,那麼更新/刪除資料時無論哪一方都不會去更新/刪除中間表的資料...通過Hibernate配置後已經可以實現主控方刪除時能刪除本身資料和中間表資料,而被控方只能刪除本身表的資料,中間表的資料仍然存在....要想實現被控方刪除時同時刪除中間表資料,需要去資料庫中設定外來鍵中間表的關聯關係為delete cascade就可以了..

以下為hibernate配置:
User:
<set name="roles" table="userrole" inverse="false">     
      <key column="username"/>    
      <many-to-many class="com.incesoft.ui.bo.Role" column="id" />  
</set>

Role:
<set name="users" table="userrole" inverse="true">     
      <key column="id"/>    
      <many-to-many class="com.incesoft.ui.bo.User" column="username" />  
</set>

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述