mybatis plus 逻辑删除
时间: 2023-08-25 20:11:51 浏览: 120
MyBatis Plus提供了逻辑删除的功能,可以在删除、查询和更新操作中自动加上条件来过滤已删除的数据。在使用MyBatis Plus进行逻辑删除时,需要在配置文件中设置相关参数。在yml配置文件中,需要设置全局逻辑删除的实体字段名、逻辑已删除值和逻辑未删除值。开启逻辑删除功能后,MP会自动在删除、查询和更新操作中加上条件deleted=0,只对未删除的数据进行操作。同时,建议在建表时对deleted字段设置默认限制,默认为0(未删除),插入数据时这个值可以不用设置。自己在xml文件中定义的接口方法不会自动开启逻辑删除功能,需要自己维护逻辑删除功能。对于查找操作,可以通过追加where条件来过滤掉已删除数据,使用wrapper.entity生成的where条件会忽略该字段。所以,MyBatis Plus的逻辑删除功能使用起来非常简单,并且提高了数据的记录价值。
相关问题
mybatis plus3.05逻辑删除
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. 更新操作时如何同时更新逻辑删除字段?
mybatis plus deleteByid 逻辑删除
在使用MyBatis Plus的`deleteById`方法进行逻辑删除时,会自动将指定实体的逻辑删除字段的值修改为逻辑删除的值,而不是进行物理删除。具体来说,当你调用`deleteById`方法删除记录时,会将对应记录的逻辑删除字段的值修改为逻辑删除的值。在`@TableLogic`注解中,你可以指定逻辑删除的值,默认情况下为1表示已删除,0表示未删除。因此,当你使用MyBatis Plus的`deleteById`方法时,会自动将该字段的值修改为逻辑删除的值。你不需要在Java代码中做任何处理,MyBatis Plus会自动将该字段视为逻辑删除字段进行处理。具体的配置方式可以参考上面给出的代码示例。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* *3* [springboot+mybatisPlus实现逻辑删除](https://blog.csdn.net/weixin_42759398/article/details/130191568)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Mybatis-plus 逻辑删除](https://blog.csdn.net/z09z27b_/article/details/131209743)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文