mybatis plus分页查询相关

springboot 寻梦 4年前 (2020-06-10) 792次浏览 0个评论 扫描二维码
文章目录[隐藏]

使用 Wrapper 自定义SQL

${ew.customSqlSegment}使用

必须继承baseMapper<entity>才能使用

匹配Wrapper 问题

if (userCompanyVO.getArea()!=null){
lambdaQueryWrapper.eq(UserCompanyVO::getArea,userCompanyVO.getArea());
}
if (StringUtils.isNotBlank(userCompanyVO.getName())){
lambdaQueryWrapper.eq(UserCompanyVO::getName,userCompanyVO.getName());
}
if (StringUtils.isNotBlank(userCompanyVO.getUsername())){
lambdaQueryWrapper.eq(UserCompanyVO::getUsername,userCompanyVO.getUsername());
}

page.setTotal问题

page.setSearchCount(false);
page.setTotal(this.count());

示例:

//Mapper
public interface UserCompanyMapper extends BaseMapper<UserCompanyVO> {

    /**
     * 查询用户信息
     * @param page 分页
     * @param wrapper 条件
     * @return List<UserCompanyVo>
     */
    @Select("select u.id,u.username,u.create_time,u.role_id,c.`name` ,c.phone_one,c.area from user u LEFT JOIN company c   on  u.company_id =  c.id   ${ew.customSqlSegment}")
    IPage<UserCompanyVO> getPageUserCompanyVO(IPage<UserCompanyVO> page, @Param(Constants.WRAPPER) Wrapper<UserCompanyVO> wrapper);
}
//Service
@Override
public IPage<UserCompanyVO> selectUserCompanyVo(Page<UserCompanyVO> page, QueryWrapper<UserCompanyVO> queryWrapper) {
    page.setSearchCount(false);
    page.setTotal(this.count());
    UserCompanyVO userCompanyVO = queryWrapper.getEntity();
    LambdaQueryWrapper<UserCompanyVO> lambdaQueryWrapper = Wrappers.lambdaQuery();
    if (userCompanyVO.getArea()!=null){
        lambdaQueryWrapper.eq(UserCompanyVO::getArea,userCompanyVO.getArea());
    }
    if (StringUtils.isNotBlank(userCompanyVO.getName())){
        lambdaQueryWrapper.eq(UserCompanyVO::getName,userCompanyVO.getName());
    }
    if (StringUtils.isNotBlank(userCompanyVO.getUsername())){
        lambdaQueryWrapper.eq(UserCompanyVO::getUsername,userCompanyVO.getUsername());
    }
    return userCompanyMapper.getPageUserCompanyVO(page,lambdaQueryWrapper);
}
喜欢 (2)
[支付宝扫码,感谢支持]
分享 (0)
关于作者:

您必须 登录 才能发表评论!