• 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?

  • 相关阅读:
    Java与Http协议
    android之VideoView和视频播放View的扩展
    Android之SurfaceView实现视频播放
    AchartEngineActivity引擎绘制柱状图、曲线图
    Android消息推送
    字符串如何排序
    Java内部类总结
    利用反射机制实现工厂设计模式的高扩展性
    Java反射机制
    android AsyncTask介绍
  • 原文地址:https://www.cnblogs.com/zxg-6/p/10059224.html
Copyright © 2020-2023  润新知