交易错误JTA DATASOURCE JPA CDI

时间:2016-08-24 19:44:38

标签: jpa cdi jta

我的项目中使用JBoss EAP的数据源。

出于某种原因,当我尝试持久保存对象时,我得到以下错误。

  

JBAS011469:执行此操作需要事务处理(或者   使用事务或扩展持久化上下文):   javax.faces.FacesException:#{back.salvar}:   javax.persistence.TransactionRequiredException:JBAS011469:   执行此操作需要事务处理(使用a   事务或扩展持久化上下文)

有@Transactional方法,但此方法会启动错误。 任何人吗?

@Stateless
@Named
public class BaseDao implements Serializable
{
    private static final long serialVersionUID = -8993128837557701804L;

    @PersistenceContext
    protected EntityManager manager;

    @Transactional
    public void persist(Object object)
    {
        manager.persist(object);
    }

}

PS:所有对象都注入了CDI,管理器注入了对象类org.jboss.as.jpa.container.TransactionScopedEntityManager

1 个答案:

答案 0 :(得分:1)

由于您的CDI bean是EJB无状态会话Bean,因此您不必在此处使用@Transactional注释,因为默认情况下EJB具有容器管理事务(CMT)。

@Transactional对于管理CDI托管bean(即POJO)上的事务事务非常有用。