实体类的date类型和数据库的datetime类型不匹配问题


   初学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);
    }
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM