【发布时间】:2011-06-26 21:02:45
【问题描述】:
我在互联网上看到很少有样本可以在流程开始时检查交易当前是否处于活动状态。
下面的代码是我从工厂获取 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(.....
【问题讨论】:
标签: java jpa transactions entitymanager toplink-essentials