【问题标题】:Entity Not Found In DB but present in Persistence Context实体未在数据库中找到但存在于持久性上下文中
【发布时间】:2019-11-03 22:43:45
【问题描述】:

我正在使用事务 1 创建资源订阅,在此事务 1 返回之前,它将获取刚刚创建的订阅资源的请求、响应和 jpa 查询添加到由执行程序服务线程处理的队列中。

这个 executorService 启动单独的事务 2,a 使用 jpa 查询来读取订阅资源的特定属性,但它得到空值,但之前的事务 1 找到了它(可能是它自己创建的)。事务 2 需要读取当前值但不创建它。

我正在使用 Ecliplink 2.6、JDK 1.8 和 Wildfly 10.Final。

我查看了eclipselink是否已将其持久化到数据库或保存在persistenceContext中,因为事务仍未完成,新事务正在尝试读取它。

【问题讨论】:

    标签: java jpa transactions entitymanager


    【解决方案1】:

    这是正常的交易行为。

    只要 T1 未提交,T2 就无法看到来自 T1 的数据。

    【讨论】:

    • 感谢西蒙及时回复。我想知道是否不是来自数据库,但我可以使用 JPA 查询从 persistenceContext 中读取。这可能吗?
    • 没有持久化上下文绑定到事务。
    猜你喜欢
    • 2023-03-07
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 2012-05-25
    • 2016-05-12
    • 2010-09-07
    相关资源
    最近更新 更多