使用mybatis plus在逻辑删除时如何自动带操作人字段的更新
时间: 2023-03-14 15:24:09 浏览: 692
MyBatis Plus提供了一个字段策略注解,可以自动填充操作人字段。在实体类中使用@TableLogic注解,如@TableLogic(value = "1"),并在配置文件中添加mybatis-plus.global-config.db-config.logic-delete-value=1,表示逻辑删除时的字段值。此外,还可以使用@TableField(fill = FieldFill.UPDATE)注解自动更新操作人字段,并添加mybatis-plus.global-config.db-config.field-strategy=NOT_NULL来自动填充操作人字段。
相关问题
mybatis plus忽略逻辑删除
MyBatis Plus是一款基于MyBatis的持久层框架增强工具,它提供了一种便捷的方式来操作数据库。如果你想在MyBatis Plus中忽略逻辑删除字段的功能,你可以通过配置来实现。
1. 首先,在全局配置文件(如application.yml或application.properties)中,找到`global-config`部分,然后添加以下内容:
```yaml
mybatis-plus:
global-config:
db-config:
logic-delete-value: -1 // 将逻辑删除值改为其他非默认值,比如-1表示未删除
logic-not-delete-value: 0 // 将逻辑未删除值改为其他非默认值,比如0表示正常
```
2. 如果你想让某个实体类忽略逻辑删除,可以在实体类上使用`@TableLogic`注解,并设置`unDeleteField`属性:
```java
@TableLogic(
value = "status", // 逻辑删除字段名
unDeleteField = true // 表示该字段在查询时不参与逻辑判断
)
private Integer status;
```
通过以上设置,当你查询数据时,即使逻辑删除字段为指定的未删除值,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. 更新操作时如何同时更新逻辑删除字段?
阅读全文