Wildfly JPA:如何确保 EJB 查询在事务中
Wildfly JPA: How to ensure that an EJB query is in a Transaction
我想从 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 的好参考。
尝试在您的 class
上添加注解 @Stateless
示例:
@Stateless
public class VehicleRepo {
}
我想从 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 的好参考。
尝试在您的 class
上添加注解 @Stateless示例:
@Stateless
public class VehicleRepo {
}