我现在使用mybatisplus 的逻辑删除字段,但是我有两个mapper的删除方法不想使用逻辑删除怎么办
时间: 2024-12-19 22:20:46 浏览: 99
MybatisPlus的逻辑删除功能通常用于在数据表中添加一个默认值为0的字段,表示某个记录是否已被标记为删除状态。如果你想在两个Mapper的删除方法中跳过逻辑删除操作,有几种处理方式:
1. **忽略条件**: 在删除方法内部,你可以检查这个逻辑删除字段的值,如果不符合你的需求(比如你想直接删除而不是逻辑删除),则设置条件为`false`或`null`,让MybatisPlus不会自动修改逻辑删除字段。
```java
public int deleteByIdWithoutDeleteFlag(id) {
return deleteByLogicIdAndOtherCondition(id, false); // 假设这里还有其他过滤条件
}
private int deleteByLogicIdAndOtherCondition(int id, Boolean logicDelete) {
Map<Criteria, Object> params = new HashMap<>();
params.put(Criteria.where("id").eq(id), logicDelete); // 设置逻辑删除字段为False
return baseMapper.delete(params);
}
```
2. **自定义删除方法**: 创建一个新的非逻辑删除的删除方法,专门用于不需要逻辑删除的情况。
```java
public int deleteByIdNoLogical(id) {
return baseMapper.deleteById(id); // 直接删除ID对应的数据,不涉及逻辑删除字段
}
```
3. **注解方式**: 如果你的Mapper接口已经使用了`@TableName`等MybatisPlus注解,可以在方法上加上`@LogDelete(false)`来禁用默认的逻辑删除操作。
```java
@Delete("DELETE FROM table WHERE id = #{id}")
@LogDelete(false)
int deleteByIdWithoutDeleteFlag(int id);
```
阅读全文
相关推荐


















