是否可以在没有容器的情况下运行实体 bean?如果是这样的例子,请。
JPA可以在Java EE容器之外使用,是的。JPA2 的规范以这些词开头:
本文档是Java API的规范,用于管理Java EE和Java SE的持久性和对象/关系映射。
(强调我的)
但是,您不会自动支持持久性单元注入,JTA支持等。春天在这方面有所帮助。
与在容器内运行的主要区别在于持久性单元的定义和处理事务。例如,持久性单元在持久性.xml中定义如下:
<persistence-unit name="pu_name" transaction-type="RESOURCE_LOCAL">
然后,您将需要获取实体交易并使用它:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("pu_name");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
...
...
tx.commit();
em.close();
emf.close();