PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Funções de array Postgresql com QueryDSL

  1. O primeiro passo é gerar o sql adequado:WHERE tags @> '{"someTag","anotherTag"}'::text[];
  2. O segundo passo é descrito por coladict (muito obrigado!):descubra as funções que são chamadas:@> é arraycontains e ::text[] é string_to_array
  3. 3º passo é chamá-los corretamente. Após horas de depuração, descobri que HQL não trata funções como funções, a menos que eu adicione um sinal de expressão (no meu caso:...=true), então a solução final se parece com isso:predicate.and(Expressions.booleanTemplate("arraycontains({0}, string_to_array({1}, ','))=true", entity.tags, tagsStr)); onde tagsStr - é uma String com valores separados por ,