java - 查询必须以 SELECT 或 FROM : delete [delete 开头

标签 java jpa

除了 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/

相关文章:

java - 使用部分显式命令然后另一个命令?

mysql - "Packet for query is too large"在带有 mysql 的 java web 应用程序中

java - 使用 SAX 解析器解析 Xml

java - Eclipse 自动完成显示 'Problems During Content Assist' 弹出窗口

mysql - 动态更改表名

java - Toplink IN 子查询

java - 如何为没有主键或唯一键列的表创建 JPA 实体

java - 具有两个多对一关系的实体关系

Java正则表达式匹配两个相同的数字

java - 使用Java批量删除Rally测试用例