这是VO类, @Data @ApiModel(value = "飞行任务管理-后端列表页vo") public class BisTaskVO extends PageReqVO implements Serializable { @ApiModelProperty(value = "id") private Integer id; @ApiModelProperty(value = "逻辑删除 1是 0否") private Integer isDel; } 写个逻辑删除,用mybatis-plus,写在service,不要写mapper和sql
时间: 2024-01-07 15:03:45 浏览: 92
MybatisPlus中@TableField注解的使用详解
3星 · 编辑精心推荐
好的,这里是一个可能的实现方案:
首先在 BisTask 实体类中添加 `@TableLogic` 注解标识逻辑删除字段:
```java
@Data
@TableName("bis_task")
public class BisTask implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableLogic // 标识逻辑删除字段
private Integer isDel;
}
```
然后在 BisTaskService 中实现逻辑删除的方法:
```java
@Service
public class BisTaskServiceImpl extends ServiceImpl<BisTaskMapper, BisTask> implements BisTaskService {
@Override
public boolean removeById(Integer id) {
BisTask task = new BisTask();
task.setId(id);
task.setIsDel(1); // 设置逻辑删除标志
return updateById(task);
}
}
```
这里使用了 Mybatis-Plus 提供的 `updateById` 方法,它会自动根据实体对象中的属性进行更新,只更新有值的字段。这里只设置了 `id` 和 `isDel` 两个属性,其他属性会被忽略。
这样,我们就完成了逻辑删除的实现,调用 `removeById` 方法即可将指定 ID 的记录标记为已删除。需要注意的是,查询时应该过滤掉已删除的记录,可以在查询条件中加上 `is_del = 0` 的限制。
阅读全文