PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Fonctions de tableau Postgresql avec QueryDSL

  1. La première étape consiste à générer le code SQL approprié :WHERE tags @> '{"someTag","anotherTag"}'::text[];
  2. 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
  3. 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));tagsStr - est une String avec des valeurs séparées par ,