0

有两个实体类 A 和 B,以及实例 a、b(a 和 b 具有相同的 id)。B 是 A 的子类( B 扩展 A)。我从数据库中删除了一个实体“b”。然后,我看到“a”没有被删除。其实这就是我真正想要的。但是,在我的代码的某个时刻,我也想删除“a”。但是当我执行 entityManager.remove(a) 时,它会抛出异常说,无法删除分离的实体。尽管超类实体保留在数据库中,但似乎删除子类实体会使超类实体分离。谁能帮我删除实例a。

注意:a 和 b 具有相同的 id,因为当我创建 b 时,会自动创建具有相同 id 的 a (继承规则)。

4

1 回答 1

0

你应该使用session.delete(b). 这将从您的数据库中删除两条记录。

在使用原生 SQL 删除语句删除 b 记录后,您必须使用原生删除语句相应地删除 a 记录。

于 2013-04-25T09:12:27.220 回答