2009-12-29 13 views
12

मैं ग्रहण के HQL उपकरणहाइबरनेट - ग्रहण हाइबरनेट उपकरण में HQL हटाना

delete from Address address where address.id = 6 

में निम्नलिखित के रूप में एक हटाएँ क्वेरी को निष्पादित करने की कोशिश की लेकिन मुझे मिल गया

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

कृपया मुझे बताओ कि मैं क्या किया है गलत। धन्यवाद।

उत्तर

0

This post मैन्युअल रूप से सत्र खोलने का प्रयास करने का सुझाव देता है, और फिर हटाएं चलाएं।

3

मुझे एक ही समस्या थी। आपकी समस्या डीएमएल का उपयोग करने के लिए नहीं है ... पहले सुझाव ने डीएमएल के समाधान के लिए एक लिंक पोस्ट किया है, लेकिन आपका प्रश्न एसक्यूएल के लिए है।

यह SQL के लिए नीचे काम करता है।

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

निम्नलिखित का प्रयास करें:

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

query.executeUpdate(); 
+0

कॉपी/पेस्ट एक अच्छा जवाब नहीं देता है ... कृपया – Andrew

24

अद्यतन पद्धति पर एनोटेशन @Modifying की कोशिश करो।

+0

समझाएं [वसंत दस्तावेज़ीकरण] के अनुसार (https://docs.spring.io/spring-data/jpa/docs/current/reference/html/# jpa.modifying-query), जब भी आप क्वेरी को संशोधित करने के लिए कस्टम व्यवहार जोड़ते हैं जिसे केवल पैरामीटर बाध्यकारी की आवश्यकता होती है तो '@ Modifying' एनोटेशन' का उपयोग करें – Narasimha