find 方法不返回对象的最新版本。 在我的代码中的某个地方,我找到一个对象,更改它,合并它并提交我的更改。在数据库中进行了更改,但在另一个函数中我找到了该对象,但我的更改不存在。 我检查了竞争条件,结果没有竞争条件。 我已经检查过该对象是否有重复项或不同的 id,但效果很好。
有人有想法吗?
数据库:mysql 持久化:eclipselink
最佳答案
您是否已打开一个 EntityManager,而另一个 EntityManager 正在进行合并/提交?过时的实体可能来自尚未与其他地方的另一个 EntityManager 中提交到数据库的更改同步的 EntityManager。
尝试在需要同步的EntityManager上调用flush()
方法。
关于java - jpa发现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3727204/