我正在使用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
任何线索?!
答案 0 :(得分:4)
您无法使用JPA自动提交。如果要删除本地事务管理,请使用JTA / CMT或Spring托管事务。
答案 1 :(得分:1)
据我所知,OpenJPA使用底层连接的自动提交值。但是,无论何时开始交易,它都会明确地将自动提交设置为false。
您可以使用以下代码检查基础连接:
OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
Connection conn = (Connection) oem.getConnection();
boolean autoCommit = conn.getAutoCommit();