交易未按时获取数据

时间:2018-06-25 05:24:24

标签: oracle jpa java-ee transactions persistence

我有一个提供许多服务的项目。我在项目中使用的是纯JPA球衣。

我以这种方式使用entityManager,entityTransaction和entityManagerFactory:对于每个服务,我从DBManager.getEntityManager()获取一个EntityManager,并从其entityManager获取和EntityTransaction

file

在每种需要交易的方法中,首先我检查public class DBManager { public static EntityManager getEntityManager() { return Persistence.createEntityManagerFactory("projectDataSource").getEntityManager(); } 且交易未激活

然后我开始交易。

我退出缓存,然后完成所有工作:在本示例中,我从数据库中获取所有活动用户,并且将用户列表返回给客户端的服务

我的一项服务是:transaction != null

@getUsersService

此代码有效,但并非总是如此!

我还有另一项服务可以改变用户;该用户还可以工作并更改数据库中的用户数据,但是当我调用getUsers服务时调用了更改服务后,它将检索旧的数据库数据

为什么会这样?

我使用entityManager和entityTransaction的方式正确吗?

0 个答案:

没有答案