提供一个自己的思路,代码仅供参考,希望对你有帮助。
```
public class SpecificationUtil {
public static <T> Specification<T> stringLike(
final String field,
final String param
) {
return skipNullAndBlank(
param,
(builder, root) -> builder.like(root.get(field), "%" + param + "%")
);
}
private static <T> Specification<T> skipNullAndBlank(
String p,
BiFunction<CriteriaBuilder, Root<T>, Predicate> f
) {
return ((Specification<T>) (root, query, builder) -> {
if (Strings.isBlank(p)) {
return query.getGroupRestriction();
} else {
return f.apply(builder, root);
}
});
}
}
```