报错原因为 无法将数据类型为Datetime的数据直接转换为Long类型数据
解决办法如下:
添加一个自定义转换器来转换 java.util.Date
或 java.sql.Date
到Long
在对应的属性上声明它使用的转换器
@NotNull
@Convert (converter = DateConverter.class)
private Long dateCreated;
自定义转换器
public class DateConverter implements AttributeConverter<Date, Long> {
@Override
public Date convertToDatabaseColumn(Long millis) {
retrun new Date(millis);
}
@Override
public Long convertToEntityAttribute(Date date) {
return date.getTime();
}
}
原地址如下is-there-any-way-to-map-mysql-timestamp-to-java-lang-long
如果使用的是Mybatis或者MybatisPlus工具类了 因为此工具类对属性的映射使用的是反射调用get set方法实现的 所以可以直接修改set方法实现自动转换属性的类型 在此可以只修改实体类的属性set方法即可
@NotNull
private Long dateCreated;
public void setDateCreated(Date dateCreated) {
//非空校验
if (created!=null)
this.dateCreated= dateCreated.getTime();
}