mybaties-plus自动填充字段
1. 准备工作
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.5.1</version>
</dependency>
2. 实体类
2.1 公用实体类
@Data
public class BaseEntity implements Serializable {
@TableField(value = "create_time", fill = FieldFill.INSERT)
@ApiModelProperty(value = "创建时间")
private Date createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
2.2 实体
@TableName(value ="role")
@Data
public class Role extends BaseEntity implements Serializable {
@TableId(value = "role_id")
@ApiModelProperty(value = "主键id")
private String roleId;
@ApiModelProperty(value = "角色名称")
private String name;
@ApiModelProperty(value = "状态")
private Integer status;
}
3 自定义实现类 MyMetaObjectHandler:
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
private static final Logger LOG = LoggerFactory.getLogger(MyMetaObjectHandler.class);
private static final String CREATE_TIME = "createTime";
private static final String UPDATE_TIME = "updateTime";
/**
* 创建时间
*/
@Override
public void insertFill(MetaObject metaObject) {
LOG.info(" -------------------- start insert fill ... --------------------");
if (metaObject.hasGetter(CREATE_TIME) && metaObject.hasGetter(UPDATE_TIME)) {
setFieldValByName(CREATE_TIME, new Date(), metaObject);
setFieldValByName(UPDATE_TIME, new Date(), metaObject);
}
}
/**
* 更新时间
*/
@Override
public void updateFill(MetaObject metaObject) {
LOG.info(" -------------------- start update fill ... --------------------");
if (metaObject.hasGetter(UPDATE_TIME)) {
setFieldValByName(UPDATE_TIME, new Date(), metaObject);
}
}
}