初學MybatisPlus時,照着官網的流程最后報錯: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);
}
}