Hibernate 一對多級聯刪除

2022-01-13 09:06:15 字數 1353 閱讀 2325

背景:

系統中有post

表和replay

表。分表表示帖子和帖子回覆的表。一篇帖子可以有多個回覆。

要求:現在要求刪除一篇帖子的同時刪除對應的replay

表中該帖子的所有回覆。

實現:在post.hbm.xml

中這樣配置 (即在「一方」的hbm.xml檔案中

)

<

set

name

="replaies"

inverse

="true"

cascade

="all"

> 或者:

cascade="delete"

操作刪除的**

post post=postdao.findbyid(postid);

postdao.delete(post);

這樣就會將某篇帖子及其回覆全部刪除了。

背景:系統中有post

表和replay

表。分表表示帖子和帖子回覆的表。一篇帖子可以有多個回覆。

要求:開啟某篇帖子,刪除了其中的某一條「回覆」。這時候要同時刪除該主題貼以及所有回覆。(不太符合常理)。

實現:

在post.hbm.xml中這樣配置 

<

set

name

="replaies"

inverse

="true"

cascade

="all"

>

或者:cascade="delete"

在replay.hbm.xml中這樣配置

<

many-to-one

name

="post"

class

="com.lhp.hibernate.beans.post"

fetch

="select"

lazy

="false"

cascade

="delete"

>

<

column

name

="postid"

not-null

="true"

/>

many-to-one

>

操作刪除的**

replay replay=replaydao.findbyid(replayid);

replaydao.delete(replay);

解讀:在這個「一對多」關係中,「一方」和「多方」都設定了級聯刪除。那麼刪除了「多方」中的一條記錄,就會級聯刪除「一方」中的記錄,然後「一方」又會級聯刪除「多方」的所有記錄。

hibernate的多對多級聯查詢

資料庫的多對多 1.1 資料庫中不能直接對映多對多 處理 建立乙個橋接表 中間表 將乙個多對多關係轉換成兩個一對多 注2 交叉連線 注3 外連線 left 左 right 右 full 左右 主從表 連線條件不成立時,主表記錄永遠保留,與null匹配 hibernate的多對多 2.1 hibern...

hibernate的多對多級聯新增與刪除

hibernate的多對多級聯新增與刪除主表和從表建立請進入本博主的部落格 在hibernate的多對多級聯新增與刪除時一定要搞清楚他們之間的關係,xml表一定要建完整 希望通過以下 能對你有幫助 級聯新增 book.hbm.xml inverse false category.hbm.xml in...

hibernate 一對多(多對一)

舉個例子 乙個國家有多個省份,多個省份只有乙個國家,這個就是多對一和一對多,兩者就是看物件的角度問題 多對一關聯對映 在多的一端加入外來鍵指向一的一端,他維護的關係是多指向一 一對多關聯對映 在多的一端加入外來鍵指向一的一端,它維護的關係是一指向多 也就是說一對多和多對一的對映策略是一樣的,只是站的...