- Første trin er at generere korrekt sql:
WHERE tags @> '{"someTag","anotherTag"}'::text[];
- 2. trin er beskrevet af coladict (mange tak!):find ud af de funktioner, der kaldes:@> er arraycontains og ::text[] er string_to_array
- Tredje trin er at kalde dem korrekt. Efter timers debug fandt jeg ud af, at HQL ikke behandler funktioner som funktioner, medmindre jeg tilføjede et udtrykstegn (i mit tilfælde:...=sandt), så den endelige løsning ser sådan ud:
predicate.and(Expressions.booleanTemplate("arraycontains({0}, string_to_array({1}, ','))=true", entity.tags, tagsStr));
hvortagsStr
- er enString
med værdier adskilt af,