HQL में कोई ilike
बराबर कार्यक्षमता नहीं है। चूंकि Konstantin पहले से ही अपने suggestion में इंगित कर चुका है, आपकी सबसे अच्छी पसंद tune the database connection है और collationTERRITORY_BASED:SECONDARY
पर सेट करें, जैसा कि इस जिरा में बताया गया है: DERBY-1748: Global case insensitive setting।
ध्यान में रखें कि सभी समानताएं (=
) और like
एस केस असंवेदनशील होंगे। यह थोड़ा सा दूर जा सकता है, और आपकी विशेष स्थिति के लिए उपयुक्त नहीं हो सकता है।
यह संबोधित करने का एक और तरीका फ़ंक्शन-आधारित इंडेक्स (यदि डर्बी उन्हें निश्चित रूप से समर्थन करता है) बना रहा है और like
और lower
को इस तरह जोड़ने के लिए अपने एचक्यूएल को ट्यून करेगा।
Query q = session.createQuery("... WHERE lower(entity.field) like ?)");
q.setString(0, '%' + variable.toLowerCase() + '%');
डर्बी एफबीआई (मैं यह नहीं है लगता है), तो आप भी कम मूल्यों और उन्हें सूचकांक के साथ ट्रिगर से भरे कॉलम बना सकते हैं समर्थन नहीं करता है।
अद्यतन यह रूप में यह अन्य JIRA में बताया गया है, व्युत्पन्न/स्वत: जनरेट की स्तंभों को परिभाषित करना संभव हो रहा है: JIRA-481: implement SQL generated columns।
स्रोत
2011-11-02 09:41:29
आप ** ** कह रहे हैं ** डर्बी डेटाबेस में एचक्यूएल काम नहीं करेगा? – ManuPK
* * काम * की तरह, लेकिन केस संवेदनशील – gotch4