2015-05-04 142 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