@TableField(fill = FieldFill.INSERT)

@TableField(fill = FieldFill.INSERT) 是 MyBatis-Plus 中的注解,用于设置实体类中对应的字段在插入时需要自动填充。

@TableField 注解表示该字段是数据库字段,支持的属性包括:value、exist、el、condition、update、insertStrategy、updateStrategy、whereStrategy、fill。

其中,fill 属性就是用来设置自动填充策略的。FieldFill 是一个枚举类型,它定义了 4 种自动填充策略,分别为:

DEFAULT: 不进行任何填充 INSERT: 插入时填充 UPDATE: 更新时填充 INSERT_UPDATE: 插入和更新时都填充 当我们在实体类中使用 @TableField(fill = FieldFill.INSERT) 注解时,表示该字段在插入数据时会自动填充相应的值,而在更新数据时不会进行填充。

举个例子,下面是一个使用 @TableField 注解的实体类代码片段:

java

@Data
public class User {
    private Long id;
    private String name;
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}

上述代码中,createTime 字段设置了 @TableField(fill = FieldFill.INSERT) 注解,表示在插入数据时会自动填充该字段;而 updateTime 字段则设置了 @TableField(fill = FieldFill.INSERT_UPDATE) 注解,表示在插入和更新数据时都会自动填充该字段。

经验分享 程序员 微信小程序 职场和发展