com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling (through reference chain: java.util.ArrayList[0]->com.zym.entity.Banner["gmtCreate"])
原因:将集合等数据存入 redis 需要将其序列化,jackson 不支持数据中的 LocalDateTime 类型的属性
解决办法:引入额外的依赖 com.fasterxml.jackson.datatype:jackson-datatype-jsr310
com.fasterxml.jackson.datatype jackson-datatype-jsr310 2.13.0
然后在对应的使用了 LocalDateTime 的实体类属性上添加序列化和反序列化注解,并指定对应的序列化类
@JsonDeserialize(using = LocalDateTimeDeserializer.class) // 反序列化 @JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化
@TableName("edu_teacher")
@ApiModel(value = "Teacher对象", description = "讲师")
public class Teacher implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("创建时间")
@TableField(fill = FieldFill.INSERT)
@JsonDeserialize(using = LocalDateTimeDeserializer.class) // 反序列化
@JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化
private LocalDateTime gmtCreate;
@ApiModelProperty("更新时间")
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonDeserialize(using = LocalDateTimeDeserializer.class) // 反序列化
@JsonSerialize(using = LocalDateTimeSerializer.class) // 序列化
private LocalDateTime gmtModified;
public LocalDateTime getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(LocalDateTime gmtCreate) {
this.gmtCreate = gmtCreate;
}
public LocalDateTime getGmtModified() {
return gmtModified;
}
public void setGmtModified(LocalDateTime gmtModified) {
this.gmtModified = gmtModified;
}
@Override
public String toString() {
return "Teacher{" +
", gmtCreate=" + gmtCreate +
", gmtModified=" + gmtModified +
"}";
}
}



