主页 > 游戏开发  > 

Mybatisplus异常:type`java.time.LocalDateTime`notsupportedb

Mybatisplus异常:type`java.time.LocalDateTime`notsupportedb
1、问题:

Java数据库实体对象有字段如下:

@TableField(typeHandler = JacksonTypeHandler.class) private Map<String, Object> dataDetail;

如果dataDetail中有LocalDateTime对象,在保存时会报如下异常:

Caused by: 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.HashMap["updateAt"]) at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77) at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1312) at com.fasterxml.jackson.databind.ser.impl.UnsupportedTypeSerializer.serialize(UnsupportedTypeSerializer.java:35) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:808) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeWithoutTypeInfo(MapSerializer.java:764) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:720) at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:35) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:479) at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:318) at com.fasterxml.jackson.databind.ObjectMapper._writeValueAndClose(ObjectMapper.java:4719) at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:3964) at com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.toJson(JacksonTypeHandler.java:66) 2、原因

fastxml默认不支持LocalDateTime对象映射

3、方案

在程序启动时(例如可以在某个用@Configuration标记的类里)设置JacksonTypeHandler的ObjectMapper:

static { ObjectMapper objectMapper = new ObjectMapper() .registerModule(new JavaTimeModule()); JacksonTypeHandler.setObjectMapper(objectMapper); }

标签:

Mybatisplus异常:type`java.time.LocalDateTime`notsupportedb由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Mybatisplus异常:type`java.time.LocalDateTime`notsupportedb

上一篇
*动态规划(4)

下一篇
Linux:环境变量