2010-06-03 24 views
8

以下异常抛出Spring Batch的应用:“执行更新/删除查询” 例外@NamedQuery做REMOVE

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

也试图将此代码包装在开始承诺方法实体事务对象和,没有帮助:

EntityManager em = entityManagerFactory.createEntityManager(); 
EntityTransaction transaction = em.getTransaction(); 
transaction.begin(); 
entityManagerFactory.createEntityManager() 
        .createNamedQuery("removeQuery").executeUpdate(); 
transaction.commit(); 
em.close(); 
entityManagerFactory.close(); 

预先感谢您

+0

又是什么'removeQuery'样子? – 2010-07-03 15:17:56

回答

2

不要使用相同的实体管理器来创建你的交易,并创建查询。

更换

entityManagerFactory.createEntityManager() 
        .createNamedQuery("removeQuery").executeUpdate(); 

通过

em.createNamedQuery("removeQuery").executeUpdate(); 
相关问题