这很可能是缓存问题。
请参阅以下文档:
https://wiki.eclipse.org/Eclipselink/Examples/JPA/Caching
缺省情况下,Eclipselink使用共享对象缓存,该缓存缓存持久性单元读取和持久保存的所有对象的子集。Eclipselink共享缓存与本地EntityManager缓存不同。
共享缓存在持久性单元(EntityManagerFactory或服务器)的持续时间内存在,并且由所有EntityManager和持久性单元的用户共享
。本地EntityManager缓存不共享,仅在EntityManager或事务期间存在。共享缓存的好处在于,一旦读取了对象,如果使用查找操作再次读取了该对象,则无需访问数据库。同样,如果通过任何查询读取该对象,则无需重建该对象,也无需重新获取其关系。
共享缓存的局限性在于,如果通过JDBC或其他应用程序或服务器直接更改数据库,则共享缓存中的对象将失效。
您可以通过在JPA配置中添加以下内容并查看问题是否消失来快速验证这一点:
<property name="eclipselink.cache.shared.default" value="false"/>
是否要永久禁用缓存取决于您的用例,即其他应用程序将在现实世界中更新这些实体。



