41-构造查询条件--排序

/*
    案例:完成根据客户名称的模糊匹配,返回客户列表
        客户名称以“戴”开头
    equal方法:直接得到path对象(属性),然后进行比较即可
    gt,lt,ge,le,like:得到path对象,根据path指定比较的参数类型,再去进行比较
            指定参数类型:path.as(类型的字节码对象)
     */
    @Test
    public void testSpec3(){
        //构造查询条件
        Specification<Customer> spec = new Specification<Customer>() {
            @Override
            public Predicate toPredicate(Root<Customer> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
                //查询属性:客户名
                Path<Object> custName = root.get("custName");
                //查询方式:模糊匹配
                Predicate predicate = criteriaBuilder.like(custName.as(String.class), "戴%");
                return predicate;
            }
        };
        
        //添加排序
        //创建排序对象:需要调用构造方法实例化sort对象
        //第一个排序参数:排序的顺序(倒序、正序)
        //Sort.Direction.Desc  :倒叙
        //Sort.Direction.Asc   :升序
        //第二个参数:排序的属性名称
        Sort sort = Sort.by(Sort.Direction.DESC, "custId");
        List<Customer> list = customerDao.findAll(spec, sort);
        for (Customer customer : list) {
            System.out.println(customer);
        }
    }
posted @ 2021-11-04 19:38  不是孩子了  阅读(83)  评论(0)    收藏  举报