Java异常 - 当autocommit = true时无法调用commit

时间:2015-04-17 17:25:09

标签: java ejb-3.0

我正在使用EJB开发应用程序,当我在数据库上进行事务时,我收到以下错误:

  

严重:RAR5031:系统异常
  javax.resource.spi.LocalTransactionException:
  当autocommit = true

时,无法调用commit

以下是代码:

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调用时只收到错误。

2 个答案:

答案 0 :(得分:1)

默认情况下,所有EJB方法都是事务性的。事务处理由EJB执行,因此您不需要调用begin()和commit()。

答案 1 :(得分:1)

将此注释@TransactionManagement(TransactionManagementType.BEAN)放在会话bean上。 例如:

@TransactionManagement(TransactionManagementType.BEAN)
public class YourSessionBean ...