项目需要使用JPA,因业务需求需要使用find_in_set函数

    List<Predicate> and = new ArrayList<>();
    and.add(criteriaBuilder.gt(criteriaBuilder.function("find_in_set", Integer.class, criteriaBuilder.literal(查找的值), root.get("字段名")),0));
    return criteriaBuilder.and(and.toArray(new Predicate[0]));

含义如下

gt为大于

criteriaBuilder.function()表示使用函数

find_in_set 为使用的函数名,

Integer.class 为函数的返回值,因为find_in_set返回的是在字段的第几位,所以用Integer.class接收

0位 和gt比较

最终生成的sql为

where find_in_ser(字段) > 0

更多推荐