我已经成立了JBoss上5.0.1GA JSF应用程序通过一个按钮呈现在表格的用户列表,并允许个人用户删除旁边的每个用户。
当deleteUser叫,呼叫被传递到UserDAOBean后者从JBoss的注入一个EntityManager。
我正在使用的代码
public void delete(E entity)
{
em.remove(em.merge(entity));
}
删除用户(码是C&P从JPA教程)。 只需调用em.remove(实体)没有任何作用,还是引起了同样的异常。
当到达这条线,我得到一个TransactionRequiredException:
(跳过显然不相关的堆栈跟踪,东西)
...
20:38:06406 ERROR [[面临的Servlet]为servlet的Servlet.service()面对的Servlet抛出异常javax.persistence.TransactionRequiredException:EntityManager的必须org.jboss.jpa.deployment.ManagedEntityManagerFactory.verifyInTx在事务内访问(ManagedEntityManagerFactory的.java:155)在org.jboss.jpa.tx.TransactionScopedEntityManager.merge(TransactionScopedEntityManager.java:192)在at.fhj.itm.utils.DAOImplTemplate.delete(DAOImplTemplate.java:54)在at.fhj.itm。 UserBean.delete(UserBean.java:53)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
...
我已经尝试过换手动管理的事务(em.getTransaction()。开始()+ .commit())左右,但是,这个失败,因为它不是JBoss容器内进行。 我曾与UserTransaction的没有成功要么。 在网络这个问题上搜索也止跌回升没有类似的案例和解决方案。
有没有人经历过类似的事情之前,并找到了解决这个?