Автокоммит OpenJPA пишет - PullRequest
       7

Автокоммит OpenJPA пишет

4 голосов
/ 10 октября 2010

Я использую 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

Любые подсказки?!

Ответы [ 2 ]

4 голосов
/ 10 октября 2010

Вы не можете автоматически фиксировать с JPA. Если вы хотите удалить локальное управление транзакциями, используйте транзакции, управляемые JTA / CMT или Spring.

1 голос
/ 10 октября 2010

Насколько я знаю, OpenJPA использует значение автоматической фиксации из базового соединения.НО он явно устанавливает для autocommit значение false при каждом запуске транзакции.

Базовое соединение можно проверить с помощью следующего кода:

OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
Connection conn = (Connection) oem.getConnection();
boolean autoCommit = conn.getAutoCommit();
...