最近在写一个项目时,对于一个create_time字段上添加下面注解报错的问题
@TableField(fill = FieldFill.INSERT)
异常信息很明确,create_time字段为空,数据库设置了该字段不能为空。使用上述注解应该是能够自动填充的,但是没有自动填充进去。
解决方法,实现一个接口即可MetaObjectHandler,并且重写其中的方法。
@Log4j2
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
log.info("insert...");
this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now(ZoneId.of(SHANGHAI.getZone())));
}
@Override
public void updateFill(MetaObject metaObject) {
log.info("update...");
this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now(ZoneId.of(SHANGHAI.getZone())));
}
}