gpt4 book ai didi

java - JPA:保留/更新子项期间的事件通知?

转载 作者:太空宇宙 更新时间:2023-11-04 10:51:10 24 4
gpt4 key购买 nike

我有两个实体 A 和 B。A 与 B 具有多对一关联 (A.listOfBs::List)。我想在 B 持久化之前验证是否将 B 添加到已存在的 A 中。

调试我们的 JPA 实现 (Hibernate),我了解到它基本上是级联关联,并且在知道其父<->子关联的情况下,仅调用 B 上的 PrePersist 处理程序,而不会调用 A 上的 BeforeUpdate。

由于我不想引入双向映射,所以我想知道如何在 B 的持久阶段验证 A 的子级,因为 A 有特殊要求(没有两个子级共享相同类型)。

是否有任何机制可以让我了解围绕保留或删除特定父级的子级的父级<->子级相关事件?

最佳答案

从调试到 Hibernate(另一个框架可能不同),持久事件仅在每个实体级别上处理。在持久化实体之前设置的持久化上下文中的子级和父级之间存在映射(请参阅处理/持久化关联)。如果能够访问它,即使没有双向连接,子级也可以通知其父级事件。所有这一切都将继续让人感觉像是黑客攻击。

最好的解决方案似乎是监听 session 级事件并迭代托管实体列表,并验证它们,无论它们是否已更改。

关于java - JPA:保留/更新子项期间的事件通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47838248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com