??初学mybatis时,照着官网的流程最后报错:Could not set property ‘createTime‘ of ‘class com.yjx.user.User‘ with value ‘Wed Jul 21 10:25:35 CST 2021‘ Cause: java.lang.IllegalArgumentException: argument type mismatch
??还是比较明显能看出来是数据类型不匹配的问题,上网查了下,数据库中datetime对应的java中的数据类型是LocalDateTime,问题解决。
实体类代码
将 Date 改成 LocalDateTime
//字段添加填充内容
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
handler代码
将 new Date() 改成 LocalDateTime.now()
@Component
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler {
//插入时的填充策略
@Override
public void insertFill(MetaObject metaObject) {
log.info("start insert fill....");
this.setFieldValByName("createTime", LocalDateTime.now(), metaObject);
this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
}
//更新时的填充策略
@Override
public void updateFill(MetaObject metaObject) {
log.info("start update fill....");
this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
}
}