jpa preupdate

r3i60tvu  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(102)

我有一个spring应用程序,使用jpa和sql db。在我的应用程序中,数据模型非常复杂,但我将使用此示例,因为它显示了我需要的所有内容:父1:n子1:n孙辈。
我的目标是:每当一个孩子或孙子得到更新时,给我一个所有相关父母的列表。为了实现这一点,出于性能原因,我希望从数据库加载父级,而不是使用getter导航。
我已经做了:我有一个 EntityListener 用一个 preUpdate 方法。在此方法中,我使用以下命令调用存储库: parentRepository.findParentsByChild_Id() / findParentsByGrandchild_Id() (二者都有各自的疑问)
发生了什么:假设我更新了一个孩子,所以 preUpdate 与子实体一起调用。现在我执行 findParentsByChild_Id() 通过这样做, preUpdate 再次调用具有相同子实体的。所以我最终陷入了一个无休止的循环。更新孙子的情况也一样。
起初,我认为必须先保存实体,所以我尝试了后期更新,得到了相同的结果。
现在我不明白为什么在另一个实体的存储库中的findby操作中使用更新后的实体id时会调用pre/post update。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题