我最近改用了spring3.0,现在hib支持如下的JSON类型定义:
@JdbcTypeCode(SqlTypes.JSON)
var request: ReportRequestDto,
但问题是ReportRequestDto
有val from: LocalDate
,保存实体时出现异常:
Java 8 date/time type `java.time.LocalDate` not supported by default
我的pom中有jackson-datatype-jsr310
依赖项,还有对象Map器的配置:
@Bean
@Primary
fun objectMapper(): ObjectMapper {
val objectMapper = ObjectMapper()
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
objectMapper.registerModule(JavaTimeModule())
objectMapper.registerKotlinModule()
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
return objectMapper
}
看起来hib没有“自动配置”对象Map器,因此它没有注册java time模块。
1条答案
按热度按时间h5qlskok1#
我想尝试将对象Map器作为bean注入会很好。您可以为此创建一个JIRA吗?同时,您可以通过将属性
org.hibernate.cfg.AvailableSettings#JSON_FORMAT_MAPPER
/hibernate.type.json_format_mapper
注册到new org.hibernate.type.format.jackson.JacksonJsonFormatMapper(yourObjectMapper)
来向自定义JacksonObjectMapper
注册自定义格式Map器。