- Langkah pertama adalah membuat sql yang tepat:
WHERE tags @> '{"someTag","anotherTag"}'::text[];
- Langkah ke-2 dijelaskan oleh coladict (terima kasih banyak!):cari tahu fungsi yang dipanggil:@> adalah arraycontains dan ::text[] adalah string_to_array
- Langkah ketiga adalah memanggil mereka dengan benar. Setelah berjam-jam debug, saya menemukan bahwa HQL tidak memperlakukan fungsi sebagai fungsi kecuali saya menambahkan tanda ekspresi (dalam kasus saya:...=true), jadi solusi akhirnya terlihat seperti ini:
predicate.and(Expressions.booleanTemplate("arraycontains({0}, string_to_array({1}, ','))=true", entity.tags, tagsStr));
di manatagsStr
- adalahString
dengan nilai yang dipisahkan oleh,