在mybatis_plus中如何查询已经逻辑删除的数据
时间: 2024-09-10 21:03:34 浏览: 190
在MyBatis-Plus中,默认情况下,逻辑删除是通过在实体类中添加一个逻辑删除字段(通常是`is_deleted`),并配置`LogicSqlInjector`来实现的。逻辑删除字段通常是`int`或`boolean`类型,标记数据是否被删除。逻辑删除的数据并不会被物理删除,而是通过设置`is_deleted`字段的值来表示数据被删除。默认值通常是`0`表示未删除,`1`表示已删除。
要查询已经被逻辑删除的数据,可以使用MyBatis-Plus提供的`QueryWrapper`或者`LambdaQueryWrapper`来进行条件查询。在查询时,需要排除`is_deleted`字段为已删除标记的记录。例如,如果`is_deleted`字段为`1`表示已删除,那么查询条件应该是`is_deleted`不等于`1`。
以下是一个使用`QueryWrapper`来查询逻辑删除数据的示例:
```java
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
// 假设有一个IService接口的实现类service对应某个实体类
IService<Entity> service;
// 创建查询条件,排除已经逻辑删除的数据
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_deleted", 0); // 查询未被逻辑删除的数据
// 执行查询
List<Entity> list = service.list(queryWrapper);
```
在这个示例中,`Entity`是对应的实体类,`is_deleted`是用于逻辑删除的字段。使用`eq("is_deleted", 0)`方法指定了查询条件,意味着查询`is_deleted`字段为`0`的记录,即未被逻辑删除的数据。
阅读全文