28 复杂的使用Specification查询

Posted zhaochengf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了28 复杂的使用Specification查询相关的知识,希望对你有一定的参考价值。

/**
     * Specification的多表查询
     */
    @Test
    public void testFind() {
        Specification<LinkMan> spec = new Specification<LinkMan>() {
            public Predicate toPredicate(Root<LinkMan> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
                //Join代表链接查询,通过root对象获取
                //创建的过程中,第一个参数为关联对象的属性名称,第二个参数为连接查询的方式(left,inner,right)
                //JoinType.LEFT : 左外连接,JoinType.INNER:内连接,JoinType.RIGHT:右外连接
                Join<LinkMan, Customer> join = root.join("customer",JoinType.INNER);
                return cb.like(join.get("cName").as(String.class),"张三");
            }
        };
        List<LinkMan> list = linkManDao.findAll(spec);
        for (LinkMan linkMan : list) {
            System.out.println(linkMan);
        }
    }

 

以上是关于28 复杂的使用Specification查询的主要内容,如果未能解决你的问题,请参考以下文章

JPA Specification复杂查询及排序

Java Specification CriteriaBuilder 复杂查询

使用Spring Boot JPA Specification实现使用JSON数据来查询实体数据

SpringBoot动态查询 Specification使用

Spring data jpa Specification查询关于日期的范围搜索

Spring Boot2.0 JPA 实现分页(简单查询分页、复杂查询分页)