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();
提前谢谢
答案 0 :(得分:2)
您不使用相同的实体管理器来创建交易和创建查询。
替换
entityManagerFactory.createEntityManager()
.createNamedQuery("removeQuery").executeUpdate();
通过
em.createNamedQuery("removeQuery").executeUpdate();