我在互联网上看到很少有样本可以在流程开始时检查交易当前是否处于活动状态。
下面的代码是我的从工厂获取 EntityManager。
我不明白为什么需要在开始之前检查交易是否处于活动状态?
是因为其他一些进程可能正在使用相同的 EntityManager 实例吗?(EntityManagerFactory 是单例但 EntityManager 不是)
@Path("update")
@PUT
@Consumes("application/json")
public Response machineUpdate(String content) {
JSONObject jObj = null;
EntityManager em = null;
EntityTransaction txn = null;
try {
JSONObject jObj = new JSONObject(content);
em = EmProvider.getInstance().getEntityManagerFactory().createEntityManager();
//what's this line doing here???
if(em.getTransaction().isActive()) {
return HttpStatusHandler.sendConflict();
}
txn = em.getTransaction();
txn.begin();
//more process ......
}
catch(.....