sql >> Base de Datos >  >> RDS >> PostgreSQL

Funciones de matriz de Postgresql con QueryDSL

  1. El primer paso es generar el sql adecuado:WHERE tags @> '{"someTag","anotherTag"}'::text[];
  2. El segundo paso lo describe coladict (¡muchas gracias!):descubra las funciones que se llaman:@> is arraycontains y ::text[] is string_to_array
  3. 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)); donde tagsStr - es una String con valores separados por ,