- 第一步是生成适当的sql:
WHERe tags @> '{"sometag","anotherTag"}'::text[];
- 第二步由coladict描述(非常感谢!):找出被调用的函数:@>是arraycontains和:: text []是string_to_array
- 第三步是正确调用它们。经过数小时的调试,我发现HQL不会将函数视为函数,除非我添加了一个表达式符号(在我的情况下:… = true),所以最终的解决方案如下所示:
predicate.and(expressions.booleanTemplate("arraycontains({0}, string_to_array({1}, ','))=true", entity.tags, tagsStr));
其中tagsStr
-是一个String
用值分隔的值,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)