PlayOrm级联实体删除

时间:2013-05-21 23:56:21

标签: playorm

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

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

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

我希望我可以通过配置注释或通过向方法传递一个额外的参数来进行级联删除...这可能吗?

1 个答案:

答案 0 :(得分:1)

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

我花了一个多小时调试在hibernate项目上使用cascade :(。我不想再这样做。