JPA:删除子实体

JPA: Remove Child Entities

我有一个实体(例如:文档)在其他 4 个实体中用作子实体(在父实体中使用 @OneToMany 和 @JoinTable)。我没有使用双向映射。我的要求是删除子项(即文档),我有两种方法可以做到这一点,一种方法是获取 4 个父项,从中删除子项并更新它们。其次,使用本机查询(使用 jdbcTemplate)从 4 个连接表中删除条目并删除子项。

有没有其他方法可以更简单地完成它?

添加孤立删除(即删除从父集合中删除的子对象)。要启用它,您需要添加

@OneToMany(orphanRemoval=true)

在拥有实体中。

创建一个包含文档作为成员和用户 JPA 继承的抽象基础 class --> http://en.wikibooks.org/wiki/Java_Persistence/Inheritance 只需要一个查询就可以获取文档的所有用户。 删除所有引用应该相对容易。

不要在自动删除的背后施展魔法。那是文档的费用。