LocalDateTime反序列化报错:cannot deserialize from Object value

Bug描述

在使用Redis作为MyBatisPlus的二级缓存时发现,从Redis取出数据时报错,即反序列化失败。

org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Cannot construct instance of java.time.LocalDateTime (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

解决方法

在使用LocalDateTime类型的字段上方加上以下注解即可:

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;

@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime createdTime;

@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
private LocalDateTime updatedTime;
posted @ 2021-01-29 22:16  没事摸摸小肚子  阅读(1155)  评论(0编辑  收藏  举报