解决com.mysql.cj.exceptions.DataConversionException: Unsupported conversion报错

后端 潘老师 3个月前 (12-07) 68 ℃ (0) 扫码查看

本文主要讲解如何解决com.mysql.cj.exceptions.DataConversionException: Unsupported conversion报错相关内容,让我们来一起学习下吧!

报错描述

使用mybatis-plus查询数据库的时候报错:com.mysql.cj.exceptions.DataConversionException: Unsupported conversion from LONG to java.sql.Timestamp

一开始以为是数据类型不匹配,于是看了好几遍代码,花费了2个小时都找不到原因。最后在实体类中找到了锅。

经过各种找资料排查,发现原来是实体类的锅。实体类如下:

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_user")
public class User extends Model<User>{

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 用户名
     */
    private String username;

    /**
     * 密码
     */
    private String password;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;

    public User(String username, String password, int age, LocalDateTime createTime, Date updateTime) {

        this.username = username;
        this.password = password;
        this.age = age;
        this.createTime = createTime;
        this.updateTime = updateTime;
    }

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}

问题就出现在构造方法这里,当我们定义了一个有参构造函数,系统会自动把我们的无参构造函数去掉,就会导致new对象的时候,无法通过无参构造方法生成对象。

解决方法:增加无参构造方法

public User() {
}
  • 或者在实体类添加注解 @NoArgsConstructor即可解决

以上就是关于如何解决com.mysql.cj.exceptions.DataConversionException: Unsupported conversion报错相关的全部内容,希望对你有帮助。欢迎持续关注潘子夜个人博客(www.panziye.com),学习愉快哦!


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/12241.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】