Play Framework:EntityManager已关闭

时间:2016-11-01 14:43:38

标签: java playframework playframework-2.4

我有一个从数据库中读取数据的端点。结果,我有两个DAO条款:DAO1和DAO2。 在DAO1中,我有类似的东西:

public MYDO1 get(Long id) {
    return em.find(MyDO1.class, id);
}

在DAO2我有这样的事情:

public List<MyDO2> getSomething(Long idFromDO1) {
   CriteriaQuery<MyDO2> criteriaQuery= criteriaBuilder.createQuery(MyDO2.class);
   Root<MyDO2> root = criteriaQuery.from(MyDO2.class);
   criteriaQuery.select(root);
   Predicate p1 ...
   Predicate p2 ...

   criteriaQuery.where(myPredicates);

   Query query = em.createQuery(criteriaQuery);
   return query.getResultsList();
}

现在,在我的服务类中,我对两个DAO进行了调用。在第一次通话时一切正常。但是,在第二次调用时,我收到此错误:java.lang.IllegalStateException: EntityManager is closed

陌生人的一部分是我还有一个端点用于检索调用相同DAO的MyDO1条目,并且它可以工作。

1 个答案:

答案 0 :(得分:0)

没有工作的服务类有@Singleton。删除它解决了问题。