4

私は OpenJPA を使用しており、すべての書き込み/挿入操作で Autocommit を使用するように構成したいと考えています。

現時点では、これを行う必要があります:

        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

手がかりはありますか?!

4

2 に答える 2

4

JPA で自動コミットすることはできません。ローカル トランザクション管理を削除する場合は、JTA/CMT または Spring 管理トランザクションを使用します。

于 2010-10-10T14:21:33.283 に答える
1

私の知る限り、OpenJPA は基礎となる接続からの自動コミット値を使用します。ただし、トランザクションを開始するたびに、autocommit を明示的に false に設定します。

次のコードを使用して、基になる接続を確認できます。

OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
Connection conn = (Connection) oem.getConnection();
boolean autoCommit = conn.getAutoCommit();
于 2010-10-10T12:59:04.367 に答える