1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| import org.springframework.data.jpa.domain.Specification; import java.util.Collection; /** * Created by Administrator on 2017/7/13 0013. */ public final class SpecificationFactory { /** * 模糊查询,匹配对应字段 * @param attribute * @param value * @return */ public static Specification containsLike(String attribute, String value) { return (root, query, cb) -> cb.like(root.get(attribute), "%" + value + "%"); } /** * 某字段的值等于value的查询条件 * @param attribute * @param value * @return */ public static Specification equal(String attribute, Object value) { return (root, query, cb) -> cb.equal(root.get(attribute),value); } /** * 获取对应属性的值所在区间 * @param attribute * @param min * @param max * @return */ public static Specification isBetween(String attribute, int min, int max) { return (root, query, cb) -> cb.between(root.get(attribute), min, max); } public static Specification isBetween(String attribute, double min, double max) { return (root, query, cb) -> cb.between(root.get(attribute), min, max); } /** * 通过属性名和集合实现in查询 * @param attribute * @param c * @return */ public static Specification in(String attribute, Collection c) { return (root, query, cb) -> root.get(attribute).in(c); } }
|