java 休眠6:具有本地日期变量的Json类型

p5fdfcr1  于 2023-01-07  发布在  Java
关注(0)|答案(1)|浏览(140)

我最近改用了spring3.0,现在hib支持如下的JSON类型定义:

@JdbcTypeCode(SqlTypes.JSON)
        var request: ReportRequestDto,

但问题是ReportRequestDtoval 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模块。

h5qlskok

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器。

相关问题