mybatisplus忽略逻辑删除
时间: 2023-09-02 16:05:37 浏览: 196
Mybatis-plus支持逻辑删除,如果想忽略逻辑删除,可以使用`BaseMapper`的`delete`方法。该方法会忽略实体类中的逻辑删除标记,直接对数据库进行物理删除操作。
示例代码:
```java
@Autowired
private UserMapper userMapper;
public int deleteUserById(Long id) {
return userMapper.deleteById(id); // 忽略逻辑删除
}
```
如果要忽略逻辑删除的全局配置,可以在`MybatisPlusConfig`中进行如下配置:
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public ISqlInjector sqlInjector() {
return new LogicSqlInjector() {
@Override
public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
List<AbstractMethod> methodList = super.getMethodList(mapperClass);
// 遍历所有方法
for (AbstractMethod method : methodList) {
// 如果方法名为deleteById
if ("deleteById".equals(method.getMethod().getName())) {
// 将逻辑删除方法替换为物理删除方法
methodList.remove(method);
methodList.add(new DeleteById() {
@Override
public String getMethodSql() {
return SqlMethod.DELETE_BY_ID.getMethod();
}
});
break;
}
}
return methodList;
}
};
}
}
```
这样配置后,每次使用`deleteById`方法时,都会进行物理删除操作。
阅读全文