mybatis plus3.05逻辑删除
时间: 2024-06-27 22:01:05 浏览: 120
MybatisPlus中的删除和逻辑删除及区别介绍
MyBatis Plus是一个基于MyBatis的ORM(对象关系映射)工具,它为简化开发、提高效率提供了很多便利功能。在3.0.5版本中,逻辑删除(也称为软删除)是一个常用的功能,它用于标记而不是完全删除数据,当需要保留历史记录但不再显示在前端时非常有用。
逻辑删除通常通过添加一个布尔类型的字段(如`isDelete`或`deleted`)来实现,这个字段默认值为0(表示正常状态),被删除时设置为1。MyBatis Plus提供了对这种逻辑删除的支持,主要体现在以下几个方面:
1. **启用逻辑删除**:在全局配置中启用逻辑删除功能,这样在持久层操作时,MyBatis Plus会自动处理`isDelete`字段的更新。
2. **CRUD操作**:查询时可以通过`笛卡尔积查询`(with_deleted)或`不使用笛卡尔积查询`(without_deleted)来选择是否包含已被删除的数据。`Model.where().delete()`默认就是逻辑删除,而`Model.deleteById(id)`则默认不删除。
3. **查询逻辑删除的数据**:可以通过方法`Model.query().deleted(true)`或`Model.query().deletedEq(true)`来获取已删除的记录。
4. **逻辑删除的反向操作**:例如,如果有一个关联关系,你想删除子表中的所有关联,但保持父表的完整,可以使用`Model.updateChildrenObj`。
相关问题:
1. 如何在MyBatis Plus中启用逻辑删除功能?
2. 如何在查询时只获取未被删除的数据?
3. 更新操作时如何同时更新逻辑删除字段?
阅读全文