質問

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();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top