一、无匹配器的情况:
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?

SpringBoot中Example的动态条件查询的更多相关文章

  1. SpringBoot中JPA使用动态SQL查询

    https://www.jianshu.com/p/f72d82e90948 可以重点关注方法二,把原生sql传入数据库去查询 好处是:更加灵活坏处是:拼接sql比较痛苦,也容易出问题,比如拼接的sq ...

  2. 【Oracle】曾经的Oracle学习笔记(4-7)多表联合查询,子查询,动态条件查询

    一.多表联合查询 二.子查询 三.动态条件查询 LESSON 4 Displaying Data from Multiple Tables------------------------------- ...

  3. mybatis+maven+父子多模块进行crud以及动态条件查询

    使用IDEA创建maven项目,File→New→Project→maven→Next→填写GroupId(例:com.zyl)和ArtifactId(mybatis-demo-parent)→Nex ...

  4. jpa中使用Query判断条件查询

    jpa中使用Query判断条件查询 @Query(value = " select m.* from mining_area as m " + " where 1 = 1 ...

  5. Spring Data JPA,一种动态条件查询的写法

    我们在使用SpringData JPA框架时,进行条件查询,如果是固定条件的查询,我们可以使用符合框架规则的自定义方法以及@Query注解实现. 如果是查询条件是动态的,框架也提供了查询接口. Jpa ...

  6. spring-data-jpa动态条件查询

    //获取动态条件的集合List<Long> list = new ArrayList<Long>(); Long sysUserId = currentUser.getSysU ...

  7. Mybatis plus中一个框多条件查询 SQL拼接

    遇到多条件查询时,只用框架自带的方法搞不定,只能自己写方法拼接 EntityWrapper<YcejShopEntity> wrapper = new EntityWrapper<& ...

  8. Spring data JPA中使用Specifications动态构建查询

    有时我们在查询某个实体的时候,给定的条件是不固定的,这是我们就需要动态 构建相应的查询语句,在JPA2.0中我们可以通过Criteria接口查询,JPA criteria查询.相比JPQL,其优势是类 ...

  9. Hibernate动态条件查询(Criteria Query)

    1.创建一个Criteria实例net.sf.hibernate.Criteria这个接口代表对一个特定的持久化类的查询.Session是用来制造Criteria实例的工厂. Criteria cri ...

随机推荐

  1. AOP & 拦截器

    https://www.cnblogs.com/boywwj/p/7502185.html spring aop中@after-returning和@after,@afterThrowing,@Aro ...

  2. PropTypes.element和PropTypes.node的区别

    PropTypes.element:指React Element,即React.CreateElement生成的元素,React.CreateElement可以用jsx语法糖表示: <MyBut ...

  3. 提取线条的lines_color、lines_facet、 lines_gauss算子

    Halcon中线条提取的算子主要有: lines_color(Image : Lines : Sigma, Low, High, ExtractWidth, CompleteJunctions : ) ...

  4. 有价证券secuerity英语

    证券业 证券业是为证券投资活动服务的专门行业.各国定义的证券业范围略有不同.按照美国的 “产业分类标准”,证券业由证券经纪公司.证券交易所和有关的商品经纪集团组成.证券业在世界各国都是一个小的产业部门 ...

  5. PB连接数据库

    SQLCA.DBMS = "ODBC" SQLCA..AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=fire ...

  6. C/C++调试:gdbserver的简单使用

    1.角色:host和target host是运行gdb的机器 target是运行gdbserver的机器 gdbserver提供一个网络服务,gdb remote到gdbserver上后进行调试 2. ...

  7. ondblclick和dblclick区别

    1.ondblclick是一个HTML DOM Event 对象,没有jquery也可以触发这个事件的,使用方法例如 1 <button ondblclick="xxx"&g ...

  8. Pthon魔术方法(Magic Methods)-反射

    Pthon魔术方法(Magic Methods)-反射 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.反射概述 运行时,区别于编译时,指的时程序被加载到内存中执行的时候. 反射 ...

  9. 用session防止网站页面被频繁刷新

    session防止网站页面频繁被刷新 <?php //公司网站老是受到攻击,这是之前在网上看到的一个用session防止IP频繁访问的方法,我们公司用的是Memcache,都差不多,就是存储方式 ...

  10. 云服务器CentOS7.4下搭建GitLab

    一.Git.GitHub.GitLab的区别 Git是版本控制系统,Github是在线的基于Git的代码托管服务. GitHub是2008年由Ruby on Rails编写而成.GitHub同时提供付 ...