java spring boot jpa Specification 查询值不为空或者null 时
sql 语句如下
select * from book where tenantId =1 and ( type is null or type!="")
具体实现
//某个日期后的
Specification<Book> specification = (root, criteriaQuery, cb) -> {
List<Predicate> list = Lists.newArrayList();
list.add(cb.equal(root.get("tenantId"), "1"));
//
List<Predicate> or2 = Lists.newArrayList();
or2.add(cb.isNull(root.get("type")));
or2.add(cb.equal(root.get("type"),""));
list.add(cb.or(or2.toArray(new Predicate[or2.size()])));
//
return cb.and(list.toArray(new Predicate[list.size()]));
};
Optional<List<Book>> all2 = this.findAll(specification);