当前位置:   article > 正文

MyBatis-Plus 之LambdaQueryWrapper 实现And/Or 查询_lambdaquerywrapper and

lambdaquerywrapper and

今天收到房管项目经理的一个需要,在项目检测指标添加一个参数,查询符合项目名称或开发企业的所属项目信息。

  1. LambdaQueryWrapper<BaseProject> lambda = new LambdaQueryWrapper<BaseProject>();
  2. lambda.eq(StringUtils.isNotEmpty(parame.getTid()), BaseProject::getTid, parame.getTid());
  3. lambda.eq(StringUtils.isNotEmpty(parame.getPtid()), BaseProject::getPtid, parame.getPtid());
  4. lambda.eq(StringUtils.isNotEmpty(parame.getType()), BaseProject::getType, parame.getType());
  5. -- 核心代码:通过LambdaQueryWrapper<T> 实现and /or 查询
  6. if(StringUtils.isNotEmpty(parame.getName())){
  7.     lambda.and(wrapper->wrapper.like(StringUtils.isNotEmpty(parame.getName()), BaseProject::getName, parame.getName())
  8.            .or()
  9.            .like(StringUtils.isNotEmpty(parame.getName()), BaseProject::getDeveloperName, parame.getName())
  10.         )
  11. }

SQL 伪代码 :

  1. select * from base_project
  2. <where>
  3.     <if test="bo.tid != null">
  4.         and tid = #{bo.tid}
  5.     </if>
  6.     <if test="bo.ptid != null">
  7. and ptid = #{bo.ptid}
  8. </if>
  9.    <if test="bo.type != null">
  10. and type = #{bo.type}
  11. </if>
  12.     <if test="bo.name != null and bo.name !=''">
  13.         and (
  14.             name like concat('%',#{bo.name},'%')
  15.             or
  16.             developerName like concat('%',#{bo.name},'%')
  17.         )
  18.     </if>
  19. </where>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/158330
推荐阅读
相关标签
  

闽ICP备14008679号