Spring Batch应用程序抛出以下异常:
19:12:40,083 ERROR main AbstractStep:213 - Encountered an error executing the step
javax.persistence.TransactionRequiredException: Executing an update/delete query
代码,其中使用了命名查询:
entityManagerFactory.createEntityManager()
.createNamedQuery("removeQuery").executeUpdate();
还尝试将这段代码包装在EntityTransaction对象的begin和commit方法中,但没有帮助:
EntityManager em = entityManagerFactory.createEntityManager();
EntityTransaction transaction = em.getTransaction();
transaction.begin();
entityManagerFactory.createEntityManager()
.createNamedQuery("removeQuery").executeUpdate();
transaction.commit();
em.close();
entityManagerFactory.close();
先感谢您
最佳答案
您无需使用同一实体管理器来创建事务和创建查询。
代替
entityManagerFactory.createEntityManager()
.createNamedQuery("removeQuery").executeUpdate();
经过
em.createNamedQuery("removeQuery").executeUpdate();