- पहला चरण उचित sql उत्पन्न करना है:
WHERE tags @> '{"someTag","anotherTag"}'::text[];
- दूसरा चरण कोलाडिक्ट द्वारा वर्णित किया गया है (बहुत बहुत धन्यवाद!):उन कार्यों का पता लगाएं जिन्हें कहा जाता है:@> arraycontains है और ::text[] string_to_array है
- तीसरा चरण है उन्हें ठीक से कॉल करना। डिबग के घंटों के बाद मुझे पता चला कि HQL फ़ंक्शंस को तब तक फ़ंक्शन के रूप में नहीं मानता जब तक कि मैंने एक एक्सप्रेशन साइन (मेरे मामले में:... =सच) नहीं जोड़ा, इसलिए अंतिम समाधान इस तरह दिखता है:
predicate.and(Expressions.booleanTemplate("arraycontains({0}, string_to_array({1}, ','))=true", entity.tags, tagsStr));
जहांtagsStr
- एकString
है,
. द्वारा अलग किए गए मानों के साथ