有两个实体类A和B,以及实例a,b (a和b具有相同的id)。B是A的子类(B扩展A)。我从数据库中删除了一个实体"b“。然后,我看到"a“没有被删除。实际上,这才是我真正想要的。然而,在我代码的某些地方,我也想删除"a“。但是当我执行entityManager.remove(a)时,它抛出异常,说分离的实体不能被移除。似乎删除一个子类实体会使超类实体分离,尽管超类实体仍保留在数据库中。有人能帮我删除实例a吗。
注意:a和b具有相同的id,因为当我创建b时,会自动使用相同的id(继承规则)创建a。
发布于 2013-04-25 17:12:27
您应该使用session.delete(b)。这将从数据库中删除这两条记录。
在使用原生SQL delete语句删除b记录之后,必须使用原生delete语句相应地删除a记录。
https://stackoverflow.com/questions/16210422
复制相似问题