LambdaQueryWrapper 中如何采用like的前导like查询

     对于LambdaQueryWrapper这中方式的查询,想必大家都已经使用的非常熟练了,而且也确实使用起来相对简单和方便。但是在最近的使用中发现了一个现像,也就是在like的适合,生成的sql语句式前后都模糊的,这种方式在实际的项目中应该式慎重使用的,因为前面模糊对于系统的性能式有很大的挑战的,尤其是数据量较大,并发也较大的场景,这几乎就是致命的打击。

    我想要的效果只是需要在变量的后面加上模糊就可以了,所以一顿网上搜索,最后终于找到了答案,其实也是比较简单,一个方法而已。

   下面就把例子代码提附上,大家一看就明了了:

  

 1  @Override
 2     public List<AuditorInformationDTO> queryUnitBySaveId(String saveId) {
 3 
 4         LambdaQueryWrapper<AuditorInformation> queryWrapper = new LambdaQueryWrapper<>();
 5 //        queryWrapper.like(AuditorInformation::getComments,saveId);
 6         queryWrapper.apply("AAE013"+" like {0}", saveId+"%");
 7 
 8         List<AuditorInformation> queryList = auditorInformationBLO.list(queryWrapper);
 9         //        类型转换
10         List<AuditorInformationDTO> retList = ClassTypeConvert.conertList(AuditorInformationDTO.class,queryList);
11         return retList;
12     }

 

原来注释掉的那段代码也还在,可以对比一下,看看。这样修改的后果,我看了一下控制台打出的sql语句,就是我想要的效果。

 

posted @ 2020-09-15 17:56  imok  阅读(17964)  评论(1编辑  收藏  举报