- Pierwszym krokiem jest wygenerowanie odpowiedniego sql:
WHERE tags @> '{"someTag","anotherTag"}'::text[];
- Drugi krok jest opisany przez coladict (wielkie dzięki!):poznaj funkcje, które są wywoływane:@> to arraycontains i ::text[] to string_to_array
- Trzecim krokiem jest prawidłowe ich wywołanie. Po godzinach debugowania zorientowałem się, że HQL nie traktuje funkcji jako funkcji, chyba że dodałem znak wyrażenia (w moim przypadku:...=true), więc ostateczne rozwiązanie wygląda tak:
predicate.and(Expressions.booleanTemplate("arraycontains({0}, string_to_array({1}, ','))=true", entity.tags, tagsStr));
gdzietagsStr
- toString
z wartościami oddzielonymi,