ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

39-动态查询完成多条件拼接

2021-11-04 19:33:25  阅读:166  来源: 互联网

标签:满足条件 39 Predicate 构造 查询 拼接 criteriaBuilder root


/*
    动态查询完成多条件拼接
     */
    @Test
    public void testSpec1(){
        /*
        root:获取属性
            客户名
            所属行业

        criteriaBuilder:构造查询:
            1、构造客户名的精确匹配查询
            2、构造所属行业的精确匹配查询
            3、将以上两个查询联系起来
         */
        Specification<Customer> spec = new Specification<Customer>() {
            @Override
            public Predicate toPredicate(Root<Customer> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
                Path<Object> custName = root.get("custName");//客户名
                Path<Object> custIndustry = root.get("custIndustry");//所属行业

                //构造查询
                //1、构造客户名的精确匹配查询
                Predicate p1 = criteriaBuilder.equal(custName, "戴庆贺");
                //2、构造所属行业的精确匹配查询
                Predicate p2 = criteriaBuilder.equal(custIndustry, "it教育");
                //3、将多个查询条件组合到一起(满足条件一并且满足条件二:与关系,满足条件一或者满足条件二:或关系)
                Predicate and = criteriaBuilder.and(p1, p2);//与拼接
//                criteriaBuilder.or();//或拼接
                return and;
            }
        };
        Optional<Customer> one = customerDao.findOne(spec);
        System.out.println(one);
    }

标签:满足条件,39,Predicate,构造,查询,拼接,criteriaBuilder,root
来源: https://www.cnblogs.com/morehair/p/15509817.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有