要求不等于两个值,可以使用notIn方法来构建查询条件。

假设要查询的实体类为User,要求Userstatus不等于value1value2,可以使用如下代码构建Specification查询方法:

public static Specification<User> notEqualTwoValues(String value1, String value2) {
    return (root, query, criteriaBuilder) -> {
        List<Predicate> predicates = new ArrayList<>();
        predicates.add(criteriaBuilder.notEqual(root.get("status"), value1));
        predicates.add(criteriaBuilder.notEqual(root.get("status"), value2));
        return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
    };
}

然后在使用JpaRepository进行查询时,可以通过调用findAll(Specification<T> spec)方法传入上述构建的Specification查询方法来实现查询:

List<User> users = userRepository.findAll(notEqualTwoValues("value1", "value2"));

以上代码将查询出status字段不等于value1value2User实体对象列表

jpa 构建specification 查询方法要求不等于两个值怎么写

原文地址: https://www.cveoy.top/t/topic/hMxK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录