把mybatis plus3.5的LambdaQueryWrapper<SysUser> lqw = Wrappers.lambdaQuery(SysUser.class).select(SysUser::getUserId).in(SysUser::getDeptId, groups); userIds = SimpleQuery.list(lqw, SysUser::getUserId);改成mybatis plus3.3.0的写法
时间: 2024-02-27 07:58:21 浏览: 60
在 MyBatis Plus 3.3.0 版本中,您可以使用 QueryWrapper 来实现相同的功能,代码如下:
```
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.select("user_id").in("dept_id", groups);
userIds = SimpleQuery.list(queryWrapper, SysUser::getUserId);
```
其中,select() 方法可以传入需要查询的字段,in() 方法可以传入需要查询的条件。
相关问题
把LambdaQueryWrapper<SysUser> lqw = Wrappers.lambdaQuery(SysUser.class).select(SysUser::getUserId).in(SysUser::getDeptId, groups); userIds = SimpleQuery.list(lqw, SysUser::getUserId);改成mybatis plus3.3.0写法
在 Mybatis Plus 3.3.0 中,可以使用 LambdaQueryWrapper 和 QueryWrapper 来构造查询条件。对于这个问题,可以按照以下方式重写:
```java
LambdaQueryWrapper<SysUser> wrapper = Wrappers.lambdaQuery(SysUser.class)
.select(SysUser::getUserId)
.in(SysUser::getDeptId, groups);
List<Object> userIds = sysUserMapper.selectObjs(wrapper);
```
这里使用了 LambdaQueryWrapper 的 lambda 表达式方法来构造查询条件,其中 `SysUser::getUserId` 表示指定查询结果为 `userId` 字段,`sysUserMapper` 是 `SysUser` 对应的 Mybatis Mapper。最后使用 `selectObjs` 方法来查询指定字段的结果列表。
把 LambdaQueryWrapper<SysUser> lqw = Wrappers.lambdaQuery(SysUser.class).select(SysUser::getUserId).in(SysUser::getDeptId, groups); List<Long> userIds = SimpleQuery.list(lqw, SysUser::getUserId);改成mybatis plus3.3.0写法
在 MyBatis Plus 3.3.0 中,可以这样写:
```
List<Long> userIds = new LambdaQueryChainWrapper<>(sysUserMapper)
.select(SysUser::getUserId)
.in(SysUser::getDeptId, groups)
.list()
.stream()
.map(SysUser::getUserId)
.collect(Collectors.toList());
```
其中,`sysUserMapper` 是 SysUserMapper 接口的实例,`LambdaQueryChainWrapper` 是 MyBatis Plus 新增的 LambdaQuery 链式查询的实现类。这里使用了 `map` 函数将 `List<SysUser>` 转换为 `List<Long>`。
阅读全文