2009-12-29 10 views
12

ho cercato di eseguire una query di eliminazione come segue in strumento di HQL di Eclipsehibernate - eliminare HQL in strumento di eclissi hibernate

delete from Address address where address.id = 6 

ma ho avuto l'

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

La prego di dirmi che ho fatto sbagliato. Grazie.

risposta

0

This post suggerisce di provare ad aprire una sessione manualmente e quindi eseguire l'eliminazione.

3

Ho avuto lo stesso problema. Il tuo problema non è l'utilizzo di DML ... il primo suggerimento ha pubblicato un link per una soluzione per DML, ma la tua domanda è per SQL.

Questo funziona per SQL.

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

Si prega di provare la seguente:

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

query.executeUpdate(); 
+0

Copia/incolla non fa una buona risposta ... spiegare per favore – Andrew

24

Prova l'annotazione @Modifying sul metodo di aggiornamento.

+0

Come per [documentazione di primavera] (https://docs.spring.io/spring-data/jpa/docs/current/reference/html/# jpa.modifying-queries), ogni volta che aggiungi un comportamento personalizzato per la modifica di query che richiedono solo il bind del parametro, allora usa l'annotazione '@ Modifica ' – Narasimha

Problemi correlati