mybatisplus忽略逻辑删除
时间: 2023-09-04 07:09:41 浏览: 107
Mybatis Plus 支持逻辑删除,如果你希望忽略逻辑删除,可以使用以下两种方式:
1.使用原生的 Mybatis 查询语句,例如:
```java
List<User> userList = userMapper.selectList(new QueryWrapper<User>().lambda().eq(User::getName, "test").last("and deleted=0"));
```
在查询条件中加上 `last("and deleted=0")`,即可忽略逻辑删除字段。
2.使用自定义的全局配置,即在 `MybatisPlusConfig` 配置类中添加如下配置:
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public GlobalConfig globalConfig() {
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setSqlInjector(new LogicSqlInjector() {
@Override
public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
List<AbstractMethod> methodList = super.getMethodList(mapperClass);
methodList.removeIf(method -> method instanceof LogicDeleteByIdWithFill);
methodList.removeIf(method -> method instanceof LogicDeleteByMap);
methodList.removeIf(method -> method instanceof LogicDeleteBatchByIds);
return methodList;
}
});
return globalConfig;
}
}
```
这样可以自定义全局的 SQL 注入器,移除逻辑删除的相关方法。这种方式适用于所有的查询操作,而不仅仅是特定的查询。
阅读全文