我正在使用事务 1 创建资源订阅,在此事务 1 返回之前,它将刚刚创建的订阅资源获取的请求、响应和 jpa 查询添加到由执行程序服务线程处理的队列中。
此 executorService 启动单独的事务 2,a 使用 jpa 查询来读取订阅资源的特定属性,但它得到 null 值,但之前的事务 1 找到了它(因为可能是它自己创建的)。事务2需要读取当前值,但不创建它。
我正在使用 Ecliplink 2.6、JDK 1.8 和 Wildfly 10.Final。
我研究了 eclipselink 是否将其持久化到数据库或保存在 persistenceContext 中,因为事务仍然未完成,新事务试图读取它。
最佳答案
这是正常的交易行为。
只要 T1 未提交,T2 就无法看到 T1 的数据。
关于java - 在数据库中未找到实体,但存在于持久性上下文中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56697376/