Mybatis-Plus
原理
1.实现元对象处理器接口:com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
2.注解填充字段 @TableField(.. fill = FieldFill.INSERT) 生成器策略部分也可以配置!
@Data
public class BaseDO implements Serializable {
@TableId
private Long id;
@TableField(value = "gmt_created", fill = FieldFill.INSERT)
private LocalDateTime gmtCreated;
@TableField(value = "gmt_modified", fill = FieldFill.INSERT_UPDATE)
private LocalDateTime gmtModified;
@Version
@TableField(value = "version", fill = FieldFill.INSERT)
private Integer version;
}

3.自定义实现类 MyMetaObjectHandler
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.strictInsertFill(metaObject, "gmtCreated", () -> LocalDateTime.now(), LocalDateTime.class);
this.strictInsertFill(metaObject, "gmtModified", () -> LocalDateTime.now(), LocalDateTime.class);
this.strictInsertFill(metaObject, "version", () -> Integer.valueOf(1), Integer.class);
}
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "gmtModified", () -> LocalDateTime.now(), LocalDateTime.class);
}
}
4.注意事项
