java - 在数据库中未找到实体,但存在于持久性上下文中

标签 java jpa transactions entitymanager

我正在使用事务 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/

相关文章:

java - 同一个 SQL 表上的 JPA OneToOne 关系

postgresql - 没有显式锁定的postgres死锁

.net - .net 应用程序是否有任何类型的文件系统事务机制可用?

java - 如何更改 Google 应用引擎上 Web 服务调用的默认超时?

java - 调试 Oracle Java 教程 - 从内部类访问局部变量;需要宣布最终

java - 强制对枚举使用 JPA AttributeConverter

transactions - Spring 数据 JPA : manual commit transaction and restart new one

java - 默认访问类中的公共(public)访问方法..有什么意义?

java - 更新单个列表项 RXJava

java - @ManyToMany JPA 2 复杂查询