- El primer paso es generar el sql adecuado:
WHERE tags @> '{"someTag","anotherTag"}'::text[];
- El segundo paso lo describe coladict (¡muchas gracias!):descubra las funciones que se llaman:@> is arraycontains y ::text[] is string_to_array
- El tercer paso es llamarlos correctamente. Después de horas de depuración, descubrí que HQL no trata las funciones como funciones a menos que agregue un signo de expresión (en mi caso:...=true), por lo que la solución final se ve así:
predicate.and(Expressions.booleanTemplate("arraycontains({0}, string_to_array({1}, ','))=true", entity.tags, tagsStr));
dondetagsStr
- es unaString
con valores separados por,