mybatisplus的field-strategy的更新策略,详细解释并且举例
时间: 2023-12-29 11:05:39 浏览: 149
MybatisPlus 中的 `field-strategy` 更新策略,即在执行更新操作时,自动填充指定字段的值。具体来说,当执行更新操作时,MybatisPlus 会自动判断指定字段是否已经设置了值,如果没有设置值,则会将指定的值填充到该字段中。
举个例子,假设有一个用户表 `user`,其中包含了 `id`、`name`、`age` 和 `update_time` 四个字段。现在我们希望在更新用户信息时,自动将 `update_time` 字段的值设置为当前时间。那么我们可以在实体类中添加 `update_time` 字段,并在该字段上添加 `@TableField` 和 `@TableLogic` 注解,如下所示:
```java
public class User {
@TableId
private Long id;
private String name;
private Integer age;
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
// 省略 getter 和 setter 方法
}
```
在这个例子中,我们使用了 `@TableField` 注解来标注 `updateTime` 字段,并指定了 `fill` 属性为 `FieldFill.UPDATE`,表示在执行更新操作时自动填充该字段。此外,我们还需要在 MybatisPlus 的配置文件中开启自动填充功能,如下所示:
```xml
<!-- MybatisPlus 配置 -->
<bean id="mybatisPlusConfig" class="com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor">
<property name="interceptors">
<list>
<bean class="com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor"/>
</list>
</property>
<property name="globalConfig">
<bean class="com.baomidou.mybatisplus.core.config.GlobalConfig">
<property name="dbConfig">
<bean class="com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig">
<!-- 开启自动填充功能 -->
<property name="fieldStrategy" value="2"/>
</bean>
</property>
</bean>
</property>
</bean>
```
在配置文件中,我们使用了 `GlobalConfig.DbConfig.fieldStrategy` 属性来配置自动填充的策略,将其设置为 2,表示在更新操作时自动填充字段。
这样,当我们执行更新操作时,MybatisPlus 将会自动将 `updateTime` 字段的值设置为当前时间,从而实现了自动填充的功能。
阅读全文