मैं निम्नलिखित HQL का उपयोग कर बूलियन क्षेत्र स्विच करने के लिए कोशिश कर रहा हूँ:नकारना एकल ऑपरेटर
update Entity e set e.booleanField = not e.booleanField where e.id = ?1;
दुर्भाग्य "QuerySyntaxException: अप्रत्याशित टोकन: निकट नहीं ..." फेंक दिया गया था।
मेरा प्रश्न है: क्या ऐसी अभिव्यक्ति का समर्थन करने वाले हाइबरनेट के लिए कुछ यूनरी ऑपरेटर है? या किसी भी प्रसिद्ध चाल है?
update entity_table set booleanField = not(booleanField);
[माना जाता है] (http://docs.jboss.org/hibernate/orm/3.3/ संदर्भ/एन/एचटीएमएल/queryhql.html # queryhql-expressions) एचक्यूएल अभिव्यक्तियों में 'नहीं 'का समर्थन करता है, लेकिन मुझे यकीन नहीं है कि यह' कहां 'खंड के बाहर अभिव्यक्तियों पर लागू होता है। आप इस समस्या के आसपास काम करने के लिए एक सामान्य हैक 'सेट e.booleanField = 1 - e.booleanField' आज़मा सकते हैं। – dasblinkenlight
क्षमा करें, काम नहीं करता है। "त्रुटि: ऑपरेटर मौजूद नहीं है: पूर्णांक - बूलियन" –
यहां 'नहीं' व्यक्त करने का एक और हैक तरीका है: 'e.booleanField = सेट करें (e.booleanField == false) '। – dasblinkenlight