实体bean(ejb 3.x)是否需要容器?

时间:2012-12-01 15:50:04

标签: java java-ee ejb

是否可以在没有容器的情况下运行实体bean?如果是这样的话请。

2 个答案:

答案 0 :(得分:3)

JPA可以在Java EE容器之外使用,是的。 JPA2的规范以这些词开头:

  

本文档是使用Java EE 和Java SE 管理持久性和对象/关系映射的Java API规范。

(强调我的)

但是,您不会自动支持持久性单元注入,JTA支持等。春天有助于这个领域。

答案 1 :(得分:0)

运行内部容器的主要区别在于持久性单元和处理事务的定义。 例如,persistence-unit在persistence.xml中定义如下:

<persistence-unit name="pu_name" transaction-type="RESOURCE_LOCAL">

然后您将需要获取EntityTransaction并使用它:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("pu_name");
EntityManager em = emf.createEntityManager();

EntityTransaction tx = em.getTransaction();
tx.begin();
...
...
tx.commit();

em.close();
emf.close();