除春天(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 Transactional管理。
它使用entityManager.remove()
但多次删除正在给出上述执行。
我没有在应用程序中使用任何查询工厂。
答案 0 :(得分:2)
如果在更正查询语法后问题仍然存在,请验证您的Hibernate配置:
将属性hibernate.query.factory_class
设置为org.hibernate.hql.ast.ASTQueryTranslatorFactory
就像我的情况一样。
有关详细信息,请参阅我找到此解决方案的Hibernate forum post。
答案 1 :(得分:0)
这与Spring无关。您的查询语法不正确,并且异常消息告诉您。
答案 2 :(得分:0)
DELETE [FROM] com.ocimum.btree.mw.core.objecttypes.profile.entity.ProfileEntity obj WHERE ...