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();

10-07 17:19