我的项目中使用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
答案 0 :(得分:1)
由于您的CDI bean是EJB无状态会话Bean,因此您不必在此处使用@Transactional
注释,因为默认情况下EJB具有容器管理事务(CMT)。
@Transactional
对于管理CDI托管bean(即POJO)上的事务事务非常有用。