我正在使用EJB开发应用程序,当我在数据库上进行事务时,我收到以下错误:
严重:RAR5031:系统异常
时,无法调用commit
javax.resource.spi.LocalTransactionException:
当autocommit = true
以下是代码:
public boolean update(Person vo) {
boolean r = false;
try
{
entityManager.getTransaction().begin();
entityManager.merge(vo);
entityManager.getTransaction().commit();
r = true;
} catch (Exception e)
{
} finally {
return r;
}
}
如果此代码未从EJB调用而未获取错误。我从EJB调用时只收到错误。
答案 0 :(得分:1)
默认情况下,所有EJB方法都是事务性的。事务处理由EJB执行,因此您不需要调用begin()和commit()。
答案 1 :(得分:1)
将此注释@TransactionManagement(TransactionManagementType.BEAN)
放在会话bean上。
例如:
@TransactionManagement(TransactionManagementType.BEAN)
public class YourSessionBean ...