2009-11-19 6 views
0

J'utilise JPA en plus de spring (3.0.0.M4). Tout en supprimant plusieurs enregistrements en utilisant query.executeUpdate() je reçois l'exception suivante.La requête doit commencer par SELECT ou FROM: delete [delete

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) 

J'utilise la gestion transactionnelle printanière.

Son travail avec entityManager.remove() mais suppression multiple donne l'exécution ci-dessus. Je n'ai utilisé aucune fabrique de requêtes dans l'application.

Répondre

0

Cela n'a rien à voir avec Spring. Votre syntaxe de requête est incorrecte et le message d'exception vous le dit.

0

DELETE [FROM] com.ocimum.btree.mw.core.objecttypes.profile.entity.ProfileEntity obj WHERE ...

Check here

2

Si le problème persiste après la correction de la syntaxe de votre requête, vérifiez votre configuration Hibernate: Définition de la propriété hibernate.query.factory_class-org.hibernate.hql.ast.ASTQueryTranslatorFactory a travaillé dans mon cas.

Pour plus d'informations, je me réfère au Hibernate forum post où j'ai trouvé cette solution.