Autocommit OpenJPA写道

时间:2010-10-10 11:05:14

标签: java jpa openjpa

我正在使用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 个答案:

答案 0 :(得分:4)

您无法使用JPA自动提交。如果要删除本地事务管理,请使用JTA / CMT或Spring托管事务。

答案 1 :(得分:1)

据我所知,OpenJPA使用底层连接的自动提交值。但是,无论何时开始交易,它都会明确地将自动提交设置为false。

您可以使用以下代码检查基础连接:

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