java - jpa发现问题

标签 java jpa eclipselink

find 方法不返回对象的最新版本。 在我的代码中的某个地方,我找到一个对象,更改它,合并它并提交我的更改。在数据库中进行了更改,但在另一个函数中我找到了该对象,但我的更改不存在。 我检查了竞争条件,结果没有竞争条件。 我已经检查过该对象是否有重复项或不同的 id,但效果很好。

有人有想法吗?

数据库:mysql 持久化:eclipselink

最佳答案

您是否已打开一个 EntityManager,而另一个 EntityManager 正在进行合并/提交?过时的实体可能来自尚未与其他地方的另一个 EntityManager 中提交到数据库的更改同步的 EntityManager。

尝试在需要同步的EntityManager上调用flush()方法。

关于java - jpa发现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3727204/

相关文章:

java - 在远程计算机上执行 jar 失败

java构建多维数组,其中的单元格是数组列表

java - 如何在不修改 java.policy 文件的情况下向我的小程序授予打印权限

java - JPA 标准 JOIN : what does {oj . ..} 在 SQL 中意味着什么?

jpa - EclipseLink : No Persistence provider for EntityManager

java - 如何使用 Junit 在 selenium Webdriver 中生成测试用例报告

java - 映射通过引用 dataObject.PayTransactionStatement.payMaster 中的未知目标实体属性 : ataObject. PayMaster.PayTransactionStatement

Java JPA "Error compiling the query"当它使用枚举时

java - Spring MVC 无法转换类型为 'java.lang.Integer' 的属性值

jpa - Hazelcast 是否为 EclipseLink 提供 L2(二级)分布式缓存?