質問
OpenJPAを使用しており、すべての書き込み/挿入操作でオートコンミットを使用するように構成したいと考えています。
現時点で私はこれをしなければなりません:
MyEntity e = new MyEntity();
em.getTransaction().begin();
em.persist(e);
em.getTransaction().commit();
私ができることをしたいのはこれです:
MyEntity e = new MyEntity();
em.persist(e); // auto commit here
私はこのプロパティをtrueに設定しています:
openjpa.NontransactionalWrite : true
手がかりはありますか?!
解決
JPAで自動コミットすることはできません。ローカルトランザクション管理を削除する場合は、JTA/CMTまたはSpring Managed Transactionsを使用します。
他のヒント
私の知る限り、OpenJPAは基礎となる接続からAutoCommit値を使用しています。ただし、トランザクションを開始するたびに、自動コミットをfalseに明示的に設定します。
次のコードで根本的な接続を確認できます。
OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
Connection conn = (Connection) oem.getConnection();
boolean autoCommit = conn.getAutoCommit();
所属していません StackOverflow