Question

J'utilise OpenJPA et que vous souhaitez le configurer pour utiliser Autocommit sur chaque écriture / opération d'insertion.

À l'heure actuelle, je dois faire ceci:

        MyEntity e = new MyEntity();
        em.getTransaction().begin();
        em.persist(e);
        em.getTransaction().commit();

Ce que je veux être en mesure de faire est la suivante:

MyEntity e = new MyEntity();        
em.persist(e); // auto commit here

Je cet ensemble de propriété sur true:

openjpa.NontransactionalWrite : true

Les indices!

Était-ce utile?

La solution

Vous ne pouvez pas auto-commit avec JPA. Si vous souhaitez supprimer la gestion locale des transactions, utilisez JTA / CMT ou gérés par Spring transactions.

Autres conseils

Pour autant que je sache, OpenJPA utilise la valeur de validation automatique de la connexion sous-jacente. Mais il établit explicitement autocommit false chaque fois que vous commencez une transaction.

Vous pouvez vérifier la connexion sous-jacente avec le code suivant:

OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
Connection conn = (Connection) oem.getConnection();
boolean autoCommit = conn.getAutoCommit();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top