QueryWrapper的group by方法
QueryWrapper<AdminUserDO> queryWrapper=new QueryWrapper();
queryWrapper.select("dept_id,count(1) countSum");
queryWrapper.groupBy("dept_id");
queryWrapper.isNotNull("dept_id");
LambdaQueryWapper的group by方法
lambdaQueryWrapper.select(AdminUserDO::getDeptId,Functions.max(AdminUserDO::salary)).groupBy(AdminUserDO::getDeptId).isNotNull(AdminUserDO::getDeptId);
这个方式是在其他网站看到的,有个问题,没有找到Functions.max这个方法
LambdaQueryWapper的多表连接查询
MPJLambdaWrapper< UserDO > wrapper = new MPJLambdaWrapper<UserDO>()
.selectAll(UserDO.class)
.select(UserDetailDO::getTel)
.selectAs(UserDetailDO::getAddress, UserDTO::getUserAddress)
.leftJoin(UserDetailDO.class, UserDetailDO::getUserId, UserDO::getId)
.eq(UserDO::getSex, 1)
.like(UserDetailDO::getAddress, "海淀")
//列表查询
List<UserDTO> list = userMapper.selectJoinList(UserDTO.class, wrapper);
//分页查询 (需要启用 mybatis plus 分页插件)
List<UserDTO> listPage = userMapper.selectJoinPage(new Page<>(1, 10), UserDTO.class, wrapper);
生成的sql是这样的(未验证)
SELECT
u.id,
u.name,
u.sex,
u.head_img,
ud.tel,
ud.address AS user_address
FROM
user u
LEFT JOIN user_detail ud on u.id = ud.user_id
WHERE u.sex = 1 AND ud.address LIKE "%海淀%"