zoukankan      html  css  js  c++  java
  • SpringBoot中Example的动态条件查询

    一、无匹配器的情况:
    Person person = new Person();
    person.setName("test");
    Role role = new Role();
    role.setName("经理");
    person.setRole(role);
    ... 
    Example<Person> ex = Example.of(person); //动态查询 
    personRepository.findAll(ex);
    personRepository.findAll(ex,pageable);
    //分页
    二、匹配器多条件组合(自己多动手试试各种各样的条件组合)
            Person person = new Person();
            person.setName(name);
            //默认匹配器:字符串采用精准查询,忽略大小写(文档说不忽略大小写,本人测试时发现是忽略大小写的)
            ExampleMatcher matcher = ExampleMatcher.matching()
    //                .withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING)  //改变默认字符串匹配为:模糊查询
    //                .withMatcher("name", ExampleMatcher.GenericPropertyMatchers.contains())  //name字段模糊匹配
    //                .withMatcher("name", ExampleMatcher.GenericPropertyMatchers.startsWith())  //name字段开头模糊匹配
    //                .withMatcher("name", ExampleMatcher.GenericPropertyMatchers.endsWith())  //name字段结尾模糊匹配
    //                .withIgnorePaths("id","phone"); //忽略id,phone字段
            Example<Person> ex = Example.of(person,matcher); //动态查询
            return personRepository.findAll(ex);
            retuen personRepository.fiadAll(ex,pageable)  //分页
    总结:
    (Person) 一对一,多对一可以通过set另外一个实体(Role)的字段来实现动态查询,但是(Person)一对多通过Example来动态查询,本人试过不行(JpaSpecificationExecutor可以),你们又没有idea?

  • 相关阅读:
    7.1MongoDB之索引
    7.1MongoDB之排序
    6.30MongoDB之Limit与Skip方法
    6.30Java连接MongoDB进行操作练习
    6.30MongoDB之$type操作符
    6.30MongoDB之条件操作符
    6.30MongoDB之"查"
    6.29MongoDB之"改"
    c# 调用jar包
    sql server SQL 调试:无法启动 T-SQL 调试。未能附加到 SQL Server 进程
  • 原文地址:https://www.cnblogs.com/zxg-6/p/10059224.html
Copyright © 2011-2022 走看看