2015-05-04 128 views
0

我有一個實體(如:文檔),在其他4個實體中使用(在父母中使用@OneToMany和@JoinTable)。我沒有使用雙向映射。我的要求是刪除孩子(即文件),我有兩種方法可以做到這一點,一種方法是,讓4位父母將孩子從他們身上移走並更新他們。其次,使用本機查詢(使用jdbcTemplate)從4個連接表中刪除條目並刪除該子項。JPA:刪除子實體

有沒有其他方式可以以更簡單的方式完成?

回答

0

創建一個包含Document作爲成員和用戶JPA Inhertiance的抽象基類 - >http://en.wikibooks.org/wiki/Java_Persistence/Inheritance 比僅應用一個查詢就可以獲得文檔的所有用戶應該是可能的。 比它應該是相對容易刪除所有引用。

不要在自動刪除的東西后面施加魔法。這就是文件的成本。

0

添加孤立刪除(即刪除父對象集合中的子對象時)。要啓用它,你需要添加

@OneToMany(orphanRemoval =真)

在擁有實體。

+0

Yogesh,這與我提到的第一個選項相同。有了這個,我必須拉出所有4位父母,這是昂貴的數據庫交易。 – Ramang

+0

@Ramang你可以試試cascade =「delete」選項。 – yogesh

+0

Yogesh,我有單向映射,並且我沒有刪除父項。我只是想使用它的PK來刪除孩子。 – Ramang