immersed-in-the-deep-sea

导航

 

话不多说,直接上代码,and那句就对了

LambdaQueryWrapper<类> wrapper= new LambdaQueryWrapper<类>()
                .in(逻辑内容)
                .like(正常逻辑内容)
                .and(wrapperNew -> wrapperNew.like(StringUtils.isNotEmpty(filter.getLocation()),
                        类::getCountry, filter.getLocation())
                    .or()
                    .like(StringUtils.isNotEmpty(filter.getLocation()), 类::getCity, filter.getLocation()))
                .like(StringUtils.isNotEmpty(filter.getIsp()), 类::getIp, filter.getIp())

这种写法就相当于是中间的或语句被当做子wrapper写了出来

补充一下写了wrapper后的分页调用

Page<类> agentInfoPage = mapper.selectPage(new Page<>(request.getPageNo(), request.getPageSize()),
            wrapper);

 

更:

有bug,改进后如下

.and(StringUtils.isNotEmpty(filter.getLocation()),wrapperNew -> wrapperNew.like(
                        类::getCountry, filter.getLocation())
                    .or()
                    .like(类::getCity, filter.getLocation()))

 

posted on 2024-04-23 14:32  沉浸深海  阅读(60)  评论(0)    收藏  举报