【问题标题】:"Executing an update/delete query" exception for @NamedQuery doing REMOVE@NamedQuery 执行 REMOVE 的“执行更新/删除查询”异常
【发布时间】:2011-02-27 09:57:42
【问题描述】:

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 对象的 begincommit 方法中,但没有帮助:

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

提前谢谢你

【问题讨论】:

  • removeQuery 长什么样子?

标签: sql exception sql-update persistence


【解决方案1】:

您不使用同一个实体管理器来创建您的事务和创建您的查询。

替换

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

通过

em.createNamedQuery("removeQuery").executeUpdate();

【讨论】:

    猜你喜欢
    • 2014-11-07
    • 2012-09-01
    • 2013-04-18
    • 1970-01-01
    • 2014-09-23
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    相关资源
    最近更新 更多