除了 spring(3.0.0.M4) 之外,我还使用 JPA。使用 query.executeUpdate()
删除多条记录时,出现以下异常。
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: org.hibernate.QueryException: query must begin with SELECT or FROM: delete [delete obj com.ocimum.btree.mw.core.objecttypes.profile.entity.ProfileEntity obj]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:648)
org.springframework.web.servlet.FrameworkServlet.doDelete(FrameworkServlet.java:578)
javax.servlet.http.HttpServlet.service(HttpServlet.java:716)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
我正在使用 spring 事务管理。
它与 entityManager.remove()
一起使用,但多次删除给出了上述执行。
我没有在应用程序中使用任何查询工厂。
最佳答案
如果更正查询语法后问题仍然存在,请验证您的 Hibernate 配置:
将属性 hibernate.query.factory_class
设置为 org.hibernate.hql.ast.ASTQueryTranslatorFactory
在我的案例中有效。
更多信息我引用Hibernate forum post我在哪里找到了这个解决方案。
关于java - 查询必须以 SELECT 或 FROM : delete [delete 开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1762410/