AFAIK,有两种类型的实体管理器 . 1.容器管理实体管理器2.应用程序管理实体管理器
-
容器管理实体经理
-
此类型的em仅使用JTA事务
以下是我的代码:
@PersistenceContext(unitName = "", type = Transaction)
EntityManager em;
public void persist(T entity) {
em.persist(entity)
}
问题:执行代码时有异常抛出:TransactionRequireException为什么会出现这种异常?将@Resource UserTransaction添加到方法persist()后,没有发生TransactionRequireException . 我不知道UserTransaction属于JTA吧 .
EntityTransaction et = em.getTransaction();
参考上面的代码,为什么JTA事务类型不能调用getTransaction()?
可以在EJB之外扩展JTA Transaction em吗?
-
应用程序管理实体管理器
-
利用JTA交易
-
利用JDBC事务(资源本地事务)
请任何人提供JDBC事务类型的源代码示例 .
1 回答
JPA持久性单元可以是JTA或RESOURCE_LOCAL .
如果使用JTA,则必须通过SessionBeans或直接访问JTA来使用JTA进行事务处理 .
见,http://en.wikibooks.org/wiki/Java_Persistence/Runtime#Java_Enterprise_Edition