应用程序管理的entityManager工作,但容器管理的实体管理器不起作用。为什么?

时间:2018-03-05 19:38:21

标签: jpa java-ee jta

我使用JavaEE开发客户端 - 服务器应用程序。我有一个无状态bean AuthenticateEJB 。 当我使用 Application-Managed Entity Manager (为简化而省略package和import语句)时,它工作正常,数据库条目刷新:

    @PersistenceUnit(unitName = "horses_unit")
    EntityManager em;
                user.setToken("PapaToken");
                EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("horses_unit");
                EntityManager em = emf.createEntityManager();
                EntityTransaction tx = em.getTransaction();
                tx.begin();
                   em.merge(user);
                tx.commit();
                em.close();
                emf.close();

但是当我使用容器管理的实体管理器时没有任何反应:

    @PersistenceContext(unitName = "ForthDynamicWebProject")
    EntityManager em;
                user.setToken("PapaToken");
                em.merge(user);

这是我的 persistence.xml 文件(为简化而省略了一些代码):

<persistence-unit name="horses_unit" transaction-type = "RESOURCE_LOCAL">
<persistence-unit name="ForthDynamicWebProject" transaction-type = "JTA">

为什么我无法使用Container-Managed Entity Manager写入数据库?我在哪里犯错?

0 个答案:

没有答案