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?

  • 相关阅读:
    04_Windows平台Spark开发环境构建
    Hadoop Streaming 使用及参数设置
    Kafka 及 PyKafka 的使用
    Database Subquery
    Miscellaneous
    Emacs
    算法归纳
    逆元求组合数
    Elasticsearch 原理
    Linux的内存分页管理【转】
  • 原文地址:https://www.cnblogs.com/zxg-6/p/10059224.html
Copyright © 2011-2022 走看看