- La première étape consiste à générer le code SQL approprié :
WHERE tags @> '{"someTag","anotherTag"}'::text[];
- La 2ème étape est décrite par coladict (merci beaucoup !) :déterminez les fonctions appelées :@> est arraycontains et ::text[] est string_to_array
- La troisième étape consiste à les appeler correctement. Après des heures de débogage, j'ai compris que HQL ne traite pas les fonctions comme des fonctions à moins que j'ajoute un signe d'expression (dans mon cas :...=true), donc la solution finale ressemble à ceci :
predicate.and(Expressions.booleanTemplate("arraycontains({0}, string_to_array({1}, ','))=true", entity.tags, tagsStr));
oùtagsStr
- est uneString
avec des valeurs séparées par,