cms02--后端-网站管理页面条件查询
页面条件查询接口 需求分析 在页面输入查询条件,查询符合条件的页面信息。 查询条件如下: 站点Id:精确匹配 模板Id:精确匹配 页面别名:模糊匹配 服务端 Dao 使用 CmsPageRepository中的findAll(Example<S> var1, Pageable var2)方法实现,无需定义。 下边测试fifindAll方法实现自定义条件查询: //页面条件查询测试dao @Test public void testFindAllByExample() { Pageable pageable = PageRequest.of(0, 10); //创建条件匹配器,注意匹配器每返回一个引用,在创建就是一个新对象了 //可以链式调用实现多条件 ExampleMatcher exampleMatcher = ExampleMatcher.matching() //要匹配的字段,和查询方式 //contains:模糊匹配 startWith:开头匹配 等等 .withMatcher("pageAliase", ExampleMatcher.GenericPropertyMatchers.contains()); // .withMatcher("pageAliase", ExampleMatcher.GenericPropertyMatchers.startsWith()); CmsPage cmsPage = new CmsPage(); cmsPage.setPageAliase("分类导航"); Example<CmsPage> example = Example.of(cmsPage,exampleMatcher); Page<CmsPage> all = cmsPageRepository.findAll(example, pageable); System.out.println(all); } Service 由于前面编写了普通查询,也将封装的条件查询类QueryPageRequest也传入参数中 因此,对之前的进行改造: 定义条件查询对象Example,在定义条件值类型对象,cmsPage 由于只有页面别名为条件匹配,其他为精确匹配,因此定义ExampleMacher条件匹配器,传入匹配字段,和查询方式 使用lang3工具类公的isNotEmpty方法判断三个查询参数,存在就设置进去 在findAll方法中将example对象传入,测试 »