赞
踩
今天收到房管项目经理的一个需要,在项目检测指标添加一个参数,查询符合项目名称或开发企业的所属项目信息。
- LambdaQueryWrapper<BaseProject> lambda = new LambdaQueryWrapper<BaseProject>();
- lambda.eq(StringUtils.isNotEmpty(parame.getTid()), BaseProject::getTid, parame.getTid());
- lambda.eq(StringUtils.isNotEmpty(parame.getPtid()), BaseProject::getPtid, parame.getPtid());
- lambda.eq(StringUtils.isNotEmpty(parame.getType()), BaseProject::getType, parame.getType());
- -- 核心代码:通过LambdaQueryWrapper<T> 实现and /or 查询
- if(StringUtils.isNotEmpty(parame.getName())){
- lambda.and(wrapper->wrapper.like(StringUtils.isNotEmpty(parame.getName()), BaseProject::getName, parame.getName())
- .or()
- .like(StringUtils.isNotEmpty(parame.getName()), BaseProject::getDeveloperName, parame.getName())
- )
- }
SQL 伪代码 :
- select * from base_project
- <where>
- <if test="bo.tid != null">
- and tid = #{bo.tid}
- </if>
- <if test="bo.ptid != null">
- and ptid = #{bo.ptid}
- </if>
- <if test="bo.type != null">
- and type = #{bo.type}
- </if>
- <if test="bo.name != null and bo.name !=''">
- and (
- name like concat('%',#{bo.name},'%')
- or
- developerName like concat('%',#{bo.name},'%')
- )
- </if>
- </where>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。