如何删除在Hibernate中删除了其子类实体的超类实体?

时间:2013-04-25 08:53:17

标签: hibernate subclass entitymanager superclass

有两个实体类A和B,以及实例a,b(a和b具有相同的id)。 B是A的子类(B扩展A)。我从数据库中删除了一个实体“b”。然后,我看到“a”尚未删除。其实这就是我真正想要的。但是在我的代码的某些时候,我也想删除“a”。但是,当我执行entityManager.remove(a)然后它抛出异常说,不能删除分离的实体。虽然超类实体仍保留在数据库中,但似乎删除子类实体会使超类实体分离。任何人都可以帮我删除实例a。

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

1 个答案:

答案 0 :(得分:0)

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

使用本机SQL删除语句删除b记录后,必须使用本机删除语句相应地删除该记录。