實體類的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