在MyBatis-Plus中查询逻辑删除的数据,可以通过几种不同的方式实现。以下是几种常见的方法,每种方法都包含相应的代码示例: 方法一:使用 LambdaQueryWrapper 的last 方法 LambdaQueryWrapper 是MyBatis-Plus 提供的一个链式调用构造器,通过它可以方便地构建查询条件。如果你想要查询已经逻辑删除的数据,可以使用 last 方法来...
实现MybatisPlus的逻辑删除查询,可利用拦截器接口,对SQL进行动态替换。在拦截到的SQL中,如果包含"QUERYDELETEDATA"关键词,需将逻辑删除条件(is_delete = 0)和该关键词替换为合适的内容。具体实现步骤如下:首先,创建自定义拦截器类,继承自MybatisPlus的全局拦截器接口,重写其方法以实现动态SQL替换。...
@Select注解允许你自定义查询语句,因此你可以控制是否包含逻辑删除的数据。 示例代码: 假设你的表中有一个del_flag字段,用于表示逻辑删除状态(0表示未删除,1表示已删除)。你可以通过@Select注解来查询包括逻辑删除的数据。 @Mapper public interface MyVehicleNoMapper { @Select({ "", "SELECT * FROM pdt_my_ve...
mybatis-plus: global-config: db-config: logic-delete-value: 1 # 逻辑已删除值(默认...
实现Interceptor 接口,获取到拦截到的sql, sql中包含QUERYDELETEDATA内容就把逻辑删除查询的条件(is_delete = 0)给替换掉,同时QUERYDELETEDATA内容也替换掉。 使用方法: QueryWrapper<Object> wrapper = new QueryWrapper<>(); wrapper.apply(MyInterceptor.QUERYDELETEDATA); ...
简介: Mybatis-plus使用@TableLogic注解进行逻辑删除数据后,在某些场景下,又需要查询该数据时,又不想写SQL。自定义Mybatis-plus的SQL注入器一劳永逸的解决该问题 方案1,继承 AbstractMethod拼接SQL语句 publicclassSelectIgnoreLogicDeleteByMapextendsAbstractMethod { @OverridepublicMappedStatementinjectMappedStatement(Class<...
MyBatis-Plus Spring Boot 大约784 字 需求 MyBatis-Plus全局配置了逻辑删除,所有SQL都会自动带上逻辑删除的where,现在有一张表需要查询出所有数据(包括逻辑删除的数据)。 说明 MyBatis-Plus官方文档中有一段附录,表示其不提供配置去单独去掉这个限制。 附录:逻辑删除是为了方便数据恢复和保护数据本身价值等等的一...
Mybatis-plus使用@TableLogic注解进行逻辑删除数据后,在某些场景下,又需要查询该数据时,又不想写SQL。 2 解决方案 自定义Mybatis-plus的SQL注入器一劳永逸的解决该问题 3 方案: 3.1 方案1,继承 AbstractMethod拼接SQL语句 publicclassSelectIgnoreLogicDeleteByMapextendsAbstractMethod{@OverridepublicMappedStatementinjectMap...
Mybatis-plus使用@TableLogic注解进行逻辑删除数据后,在某些场景下,又需要查询该数据时,又不想写SQL。 2 解决方案 自定义Mybatis-plus的SQL注入器一劳永逸的解决该问题 3 方案: 3.1 方案1,继承 AbstractMethod拼接SQL语句 public class SelectIgnoreLogicDeleteByMap extends AbstractMethod { @Override public MappedStat...
微知识:“如何避免 mybatisplus 插件拦截” -链接我们在使用 mybatisplus 时,它提供了一些方便我们操作的插件。但有时我们并不想被它的插件拦截时,应该怎么做呢。比如,我们配置了全局的逻辑删除,这时所有的查询都会过滤掉逻辑删除的数据,而某些查询正好需要查询所有数据包含逻辑删除的数据。