当前端传递要排序的字段和排序的顺序时,后台又想使用LambdaQueryWrapper时可使用下面方法
public BaseResponse<Page<User>> listUserByPage(@RequestBody UserQueryRequest userQueryRequest) {
ThrowUtils.throwIf(ObjUtil.isEmpty(userQueryRequest), ErrorCode.PARAMS_ERROR);
LambdaQueryWrapper<User> qw = new LambdaQueryWrapper<>();
qw.eq(ObjUtil.isNotNull(userQueryRequest.getId()), User::getId, userQueryRequest.getId());
qw.like(StrUtil.isNotBlank(userQueryRequest.getUserName()), User::getUserName, userQueryRequest.getUserName());
qw.like(StrUtil.isNotBlank(userQueryRequest.getUserAccount()), User::getUserAccount, userQueryRequest.getUserAccount());
qw.like(StrUtil.isNotBlank(userQueryRequest.getUserProfile()), User::getUserProfile, userQueryRequest.getUserProfile());
Page<User> objectPage = new Page<>(userQueryRequest.getCurrent(), userQueryRequest.getPageSize());
//拼接排序条件
if (StrUtil.isNotBlank(userQueryRequest.getSortField())) {
OrderItem orderItem = new OrderItem();
orderItem.setAsc("asc".equals(userQueryRequest.getSortOrder()));
orderItem.setColumn(userQueryRequest.getSortField());
objectPage.addOrder(orderItem);
}
Page<User> userPage = userService.page(objectPage, qw);
return ResultUtils.success(userPage);
}
为什么要使用LambdaQueryWrapper
一般的QueryWrapper需要写表的列名,不想写
xml也不想写