@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

@Datapublic 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) 注解,表示在插入和更新数据时都会自动填充该字段。