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;
}
![](https://i-blog.csdnimg.cn/blog_migrate/d42ceb5b8d57858dfc04994a4a93553c.png)
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.注意事项
![](https://i-blog.csdnimg.cn/blog_migrate/07a787a446d9c37e3311a47118e5a795.png)