在使用 MyBatis-plus 进行数据查询时,有时候我们需要查询已经逻辑删除的数据。MyBatis-plus
提供了方便的工具来处理和查询逻辑删除的数据。
MyBatis-plus 通过在数据库表中添加一个字段来标识数据是否被逻辑删除。通常情况下,这个字段的名称是 IS_DEL
(或其他自定义名称),其值为 true
表示已被逻辑删除,值为 false
或 null
表示未被逻辑删除。
首先,我们需要了解 MyBatis-plus 中如何处理逻辑删除。通常情况下,MyBatis-plus 通过添加一个字段来标识数据是否被逻辑删除
,比如一个名为 IS_DEL
的字段,其值为 true
表示已被逻辑删除,值为 false
或者 null
表示未被逻辑删除。
接下来,我们可以使用 MyBatis-plus 提供的 LambdaQueryWrapper
来构建查询条件。下面是一个示例代码:
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.entity.Order;// 查询已逻辑删除的数据
List<Order> deletedImages = myMapper.selectList(new LambdaQueryWrapper<Order>().last("or IS_DEL = true")
);
在上面的代码中,我们使用了 LambdaQueryWrapper
,并通过 last()
方法添加了一个原生 SQL 的条件,这个查询的结果包含了已逻辑删除的数据
接着,我们可以对查询结果进行进一步筛选或处理,比如筛选已逻辑删除的数据