我使用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写入数据库?我在哪里犯错?