【发布时间】:2020-06-21 10:25:33
【问题描述】:
创建一个查询/一个谓词,其中列的内容(在我的例子中是一组字符串)以给定的字符串开头很容易:
public static <E> Predicate stringBeginsWithAnyInSet(String match, SetAttribute<E, String> setAttribute,
CriteriaBuilder criteriaBuilder, Root<E> root) {
SetJoin<E, String> setJoin = root.join(setAttribute);
return criteriaBuilder.like(setJoin, match + "%");
}
但我需要它的另一种方式给定字符串必须以列中的值开头 - 在我的情况下至少有一个值。
问题
criteriaBuilder.like( match + "%", setJoin);
没有编译。
如何实现查询而不改变谓词签名 - 给定的字符串是已知的并且谓词应该包含它。
【问题讨论】:
标签: jpa criteria-api