- Първата стъпка е да генерирате подходящ sql:
WHERE tags @> '{"someTag","anotherTag"}'::text[];
- Втората стъпка е описана от coladict (благодаря много!):разберете функциите, които се извикват:@> е arraycontains и ::text[] е string_to_array
- 3-та стъпка е да ги извикате правилно. След часове на отстраняване на грешки разбрах, че HQL не третира функциите като функции, освен ако не съм добавил знак за израз (в моя случай:...=true), така че окончателното решение изглежда така:
predicate.and(Expressions.booleanTemplate("arraycontains({0}, string_to_array({1}, ','))=true", entity.tags, tagsStr));
къдетоtagsStr
- еString
със стойности, разделени с,