このページでは、SimpleORM4Jに実装されているトランザクションメソッドに関してご説明をしていきます。
SimpleORM4Jではトランザクションはデータベース接続毎に管理する設計としていますので、データベース接続毎に生成されるEntityManagerのメソッドとして実装がされています。
beginTransaction | トランザクションの開始 |
---|---|
commit | コミット |
rollback | ロールバック |
SimepleORM4Jでのトランザクション実装例を以下に記載をします。
■ 実装例 try { EntityManager em = EntityManagerFactory.createEntityManager(); Criteria criteria = em.getCriteria(); criteria.select(Charge.class) .from(Charge.class) .where(Expression.equal(Charge.class.getDeclaredField("id"), 3)); Query query = em.createQuery(criteria); Charge charge = (Charge) query.getSingleResult(); em.beginTransaction(); // トランザクション開始 try { charge.setName("担当者C更新2"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdf.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo")); charge.setRegistDate(sdf.parse("2020-04-06 10:10:10")); charge.setUpdateDate(sdf.parse("2020-04-06 10:10:10")); int updCnt = em.merge(charge); System.out.println("Update count : " + updCnt); } catch (So4jException e) { em.rollback(); // ロールバック throw new Exception(e.getMessage(), e); } em.commit(); // コミット } catch (Exception e) { e.printStackTrace(); }
SimpleORM4Jへのご意見やご感想がございましたら、メッセージをお願い致します。
また、SimpleORM4Jを使用して頂きまして、バグがございましたらご連絡を頂けると助かります。
皆様からのご意見・ご感想をもとに、SimpleORM4Jを改善・拡張をしていきたいと考えております。
皆様からのメッセージは当方で確認をしておりますが、仕事をしながらの開発となる為、すぐにご返信・対応をすることが
出来ない場合がございます。何卒ご容赦ください。
タイトル※ | |
---|---|
メールアドレス | |
内容※ |