- 最初のステップは、適切なSQLを生成することです:
WHERE tags @> '{"someTag","anotherTag"}'::text[];
- 2番目のステップはcoladictによって説明されています(どうもありがとう!):呼び出される関数を理解してください:@>はarraycontainsで、::text[]はstring_to_array
- 3番目のステップは、それらを適切に呼び出すことです。何時間ものデバッグの後、式記号(私の場合:... =true)を追加しない限り、HQLは関数を関数として扱わないことがわかりました。したがって、最終的な解決策は次のようになります。
predicate.and(Expressions.booleanTemplate("arraycontains({0}, string_to_array({1}, ','))=true", entity.tags, tagsStr));
ここで、tagsStr
-はString
です,
で区切られた値