Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

Насколько я знаю, OpenJPA использует значение AutoCommit из базового подключения. Но это явно устанавливает автопробуй на ложь всякий раз, когда вы начинаете транзакцию.

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

OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
Connection conn = (Connection) oem.getConnection();
boolean autoCommit = conn.getAutoCommit();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top