0

如果我使用remove实体管理器的方法,如下:

DGEntity e = this.findById(id.toString(), entityClass);
getEm().remove(e);

并假设 DGEntity 与其他实体有很多关联,remove 方法会仅删除实体 e 还是也会删除关联的类?

我希望我可以通过使用注释配置或向方法传递附加参数来级联删除......这可能吗?

4

1 回答 1

1

不,playorm 中没有级联。有许多问题和大量的极端案例使休眠中的级联在大量模型中成为巨大的调试痛苦。由于某些模型如果您正确遍历它们可以将整个数据库加载到内存中,这也意味着级联需要删除每个实体或正确配置。除此之外,不同的用例有时需要级联,而其他用例需要级联,所以最好的方法是永远不要使用级联。我们选择不进行级联,因为它很容易遍历您自己的模型并进行删除,并且当您只想删除父实体而不是子实体的其他用例弹出时,更容易编码而不必撤消级联逻辑。

我花了很多小时调试休眠项目中级联的使用:(。我不想再这样做了。

于 2013-05-22T00:51:21.593 回答