2009-12-29 23 views
12

Ich habe versucht, eine Lösch-Abfrage wie folgt in Eclipse HQL-ToolHibernate - löschen hql in Eclipse Hibernate Tool

delete from Address address where address.id = 6 

aber ich die

org.hibernate.hql.QueryExecutionRequestException: Not supported for DML operations 

Bitte bekam auszuführen mir sagen, dass ich getan habe falsch. Danke.

Antwort

0

This post schlägt vor, eine Sitzung manuell zu öffnen und dann das Löschen auszuführen.

3

Ich hatte das gleiche Problem. Ihr Problem ist nicht für die Verwendung von DML ... der erste Vorschlag hat einen Link für eine Lösung für DML gepostet, aber Ihre Frage ist für SQL.

Dies funktioniert für SQL unten.

String sql = "delete from ServiceProviderMapping where id=7"; 
Query query = hibernateSession.createQuery(sql); 
query.executeUpdate(); 
1

Bitte versuchen Sie folgendes:

final String hql = "delete from Job where jobId = :id"; 
Query query = session.createQuery(hql).setLong("id", jobId); 

query.executeUpdate(); 
+0

Kopieren/Einfügen ist keine gute Antwort machen ... bitte erläutern – Andrew

24

Versuchen Sie, die Anmerkung @Modifying auf der Update-Methode.

+0

Laut [Spring Dokumentation] (https://docs.spring.io/spring-data/jpa/docs/current/reference/html/# jpa.modifying-queries), wenn Sie benutzerdefiniertes Verhalten zum Ändern von Abfragen hinzufügen, die nur eine Parameterbindung benötigen, dann verwenden Sie die Annotation '@ Modifying' – Narasimha