Wildfly JPA:如何确保EJB查询在事务

时间:2016-12-09 15:43:24

标签: hibernate jpa java-ee transactions ejb

我想从Wildfly JEE上的Java实体执行更新查询。 以下是我更新实体的方法:

entry.setProcessed(Boolean.TRUE);
entry.setName("Fred");
em.persist(entry);

但它没有用,而且它给了我一个错误:

2016-12-09 17:23:23,226 ERROR [stderr] (default task-4) javax.persistence.TransactionRequiredException: WFLYJPA0060: Transaction is required to perform this operation (either use a transaction or extended persistence context)

好的,所以我需要一个交易。但是我如何创建或加入交易?

以下是我如何设置PersistenceContext和EntityManager:

@PersistenceContext (unitName = "config", type=PersistenceContextType.EXTENDED)
private EntityManager em;

我尝试了em.joinTransaction(),但这需要一个已经创建的事务。 em.persist()`因为没有交易而无法工作。交易应该由容器管理。我无法找到关于如何设置容器或配置PersistenceContext的良好参考。

1 个答案:

答案 0 :(得分:1)

尝试在班级上添加@Stateless注释

示例:

@Stateless
public class VehicleRepo {

}