【问题标题】:Transaction Error JTA DATASOURCE JPA CDI事务错误 JTA DATASOURCE JPA CDI
【发布时间】:2016-08-24 19:44:38
【问题描述】:

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

由于某种原因,当我尝试持久化对象时,出现以下错误。

JBAS011469:需要事务才能执行此操作(要么 使用事务或扩展持久性上下文): javax.faces.FacesException:#{back.salvar}: javax.persistence.TransactionRequiredException:JBAS011469: 执行此操作需要事务(使用 事务或扩展持久性上下文)

有@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

【问题讨论】:

  • 能否请您附上您的persistence.xml#{back.salver} 的实现?

标签: jpa cdi jta


【解决方案1】:

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

@Transactional 可用于管理 CDI 托管 bean(即 POJO)上的事务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 2021-04-01
    • 2014-06-05
    • 2013-06-21
    • 1970-01-01
    • 2011-08-06
    • 2014-06-11
    相关资源
    最近更新 更多