mybatisplus中FieldFill.INSERT如何实现软删除时更新指定字段的时间
时间: 2025-02-11 21:36:01 浏览: 44
在 MyBatisPlus 中,`FieldFill.INSERT` 是一种自定义注解,用于在插入数据时设置特定字段的值。如果你想要在软删除模式下,并更新指定字段(如 `delete_date` 或 `is_delete` 等)作为时间戳,你可以通过以下几个步骤实现:
1. 首先,在实体类(Entity)上为软删除字段添加相应的注解,例如 `@TableId(value = "id", type = IdType.AUTO)` 和 `@TableLogic`,这将启用软删除功能。
```java
@Table(name = "your_table_name")
public class YourEntity {
//...
@TableId(value = "id", type = IdType.AUTO)
private Long id;
// Soft delete field (usually an Integer or Boolean)
@TableLogic
private Integer isDeleted;
//...其他字段
}
```
2. 在需要在插入时自动更新删除日期的地方,使用 `@TableSqlInsert` 注解并提供一个动态 SQL 表达式,比如使用 `now()` 函数获取当前时间。
```java
@TableSqlInsert({
"insert into your_table_name (name, other_fields, is_deleted) values (?, ?, #{isDeleted eq 0 ? 0 : now()})"
})
default void insert(YourEntity entity);
```
这里假设 `isDeleted` 为布尔类型的字段,如果实体尚未被标记为删除(即 `isDeleted` 为 `false`),则保持默认值,否则插入时会自动更新 `isDeleted` 为当前时间。
阅读全文
相关推荐


















