mybatisplus的lambdaQuerywrapper默认查询的是表中不删除的嘛
时间: 2024-04-07 12:31:49 浏览: 151
MyBatis-Plus 中的 LambdaQueryWrapper 默认查询的是表中不被标记为删除的记录。具体来讲,如果你的表中有一个标记删除的字段,比如 is_deleted,那么在使用 LambdaQueryWrapper 进行查询时,它会自动添加一个 is_deleted = 0 的条件,以排除掉被标记为删除的记录。当然,你也可以通过调用 LambdaQueryWrapper 的方法手动设置这个条件,比如 wrapper.eq("is_deleted", 0)。
相关问题
mybatisplus LambdaQueryWrapper去重查询
以下是使用MybatisPlus LambdaQueryWrapper进行去重查询的示例代码:
```java
LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery();wrapper.select(User::getName).distinct(true).orderByAsc(User::getId);
List<User> userList = userMapper.selectList(wrapper);
```
上述代码中,我们使用了LambdaQueryWrapper的select方法来指定查询的字段,使用distinct方法来进行去重查询,使用orderByAsc方法来指定查询结果的排序方式。最后,我们使用selectList方法来执行查询并返回结果。
MybatisPlus LambdaQueryWrapper 多表关联分页查询
MybatisPlus LambdaQueryWrapper 可以简化多表关联查询,同时还支持分页查询。以下是一个示例代码:
```java
// 定义分页对象
IPage<UserVO> page = new Page<>(current, size);
// 构造 LambdaQueryWrapper 对象
LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery();
wrapper.eq(User::getDeleted, 0);
// 多表关联查询
wrapper.inSql(User::getId, "SELECT user_id FROM user_role WHERE role_id = 1");
// 设置分页参数,并执行查询
return userMapper.selectPage(page, wrapper).convert(UserVO::new);
```
上面的代码中,我们首先定义了一个分页对象 `page`,然后构造了一个 LambdaQueryWrapper 对象 `wrapper`,并设置了一个删除标识的查询条件。接着使用 `inSql` 方法进行多表关联查询,查询条件是 `user_role` 表中 `role_id` 等于 1 的所有记录,返回的是这些记录中的 `user_id` 值。最后将分页对象和查询条件传递给 `selectPage` 方法进行分页查询。
注意,在 `convert` 方法中调用了 `UserVO::new`,这是因为我们需要将查询结果转换为 VO 类型,具体的转换逻辑可以根据实际情况进行编写。
阅读全文