私はインターネット上で、トランザクションがプロセスの開始時に現在アクティブであるかどうかをチェックするサンプルをほとんど見ていません。JPA Toplink - プロセスの開始時にアクティブなトランザクションをチェックする必要はありますか?
私の下のコードは、工場からEntityManagerを取得します。
私は理解できませんなぜトランザクションがアクティブであるかどうかをチェックする必要がありますか?
他のプロセスが同じEntityManagerインスタンスを使用している可能性がありますか? (のEntityManagerFactoryはシングルトンですが、EntityManagerのではありません)私はコードがJPAトランザクションAPIを使用している特定のトランザクションチェックするための任意の理由を見ることができない
@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(.....
私はJTAを使用していません(persistences.xmlで無効になっています)が、私の研究とあなたの声明に基づいて、isActive()チェックは最初は必要ありません。 –