看起来至少可以在jpa entitylistener中预创建jpa2.1create实体
我想做的是更新 @Transient
托管jpa实体中的数据,并将托管jpa实体发送给kafka @PostPersist
以及 @PostUpdate
事件。该操作将从另一个存储库进行读取,以获取一段数据。
然而,当我这样做的时候,我会得到一个 ConcurrentModificationException
齐平。
我现在的解决方法是执行jooq操作,从另一个表中获取所需的数据。
我的问题是jpa是否允许这种操作(也就是说,这可能是一个hibernate bug),或者根据规范它实际上是非法的。
1条答案
按热度按时间z0qdvdin1#
根据第3.5.2章(生命周期回调方法)中的jpa2.1规范,某些规则适用。其中一条规定:
一般来说,可移植应用程序的生命周期方法不应调用entitymanager或查询操作、访问其他实体示例或修改同一持久性上下文中的关系[46][47]生命周期回调方法可以修改被调用实体的非关系状态。
根据你对问题的描述,你试图做的事似乎违反了这条规则。