如果我使用实体管理器的remove方法,如下所示:
DGEntity e = this.findById(id.toString(), entityClass);
getEm().remove(e);假设DGEntity与其他实体有很多关联,remove方法是只删除实体e,还是也删除关联的类?
我希望我可以通过配置注释或向方法传递一个额外的参数来级联delete。这个是可能的吗?
发布于 2013-05-22 08:51:22
不,在playorm中没有级联。有许多问题和大量的角落案例,使得hibernate中的级联在大量模型中成为巨大的调试痛苦。由于一些模型如果您正确地遍历它们,可能会将整个数据库加载到内存中,这也意味着级联将需要删除每个实体或正确配置。最重要的是,不同的用例有时需要级联,而其他用例需要级联,所以最好的方法是永远不要使用级联。我们选择不做级联,因为它很容易遍历您自己的模型和进行删除,并且当出现其他用例时,您只想删除父实体而不是子实体,这更容易编码,并且不必撤消级联逻辑。
我花了一个小时来调试hibernate项目中级联的使用:(.我不想再这样做了。
https://stackoverflow.com/questions/16681385
复制相似问题