jooq将json date反序列化为java.time.localdatetime,但没有注解@jsondesialize

mcvgt66p  于 2021-06-27  发布在  Java
关注(0)|答案(0)|浏览(216)

可以删除注解,如:

@JsonDeserialize(using = LocalDateTimeDeserializer.class)
    protected LocalDateTime createTime;

并在springboot中创建一个地方配置?
当我试图通过这种方式从数据库获取数据时,出现问题:

public SomeDataMasterDto findById(Integer id) {
        SomeDataMasterDto someDataMasterDto = dslContext
                .select(jsonObject(
                        key("id").value(SOME_DATA_MASTER.ID),
                        key("createTime").value(SOME_DATA_MASTER.CREATE_TIME),
                        key("orderTime").value(SOME_DATA_MASTER.ORDER_TIME),
                        key("someDataOtherDtos").value(jsonArrayAgg(jsonObject(
                                key("id").value(SOME_DATA_OTHER.ID),
                                key("createTime").value(SOME_DATA_OTHER.CREATE_TIME),
                                key("offerType").value(SOME_DATA_OTHER.OFFER_TYPE),
                        )).absentOnNull())
                ))
                .from(SOME_DATA_MASTER)
                .leftJoin(SOME_DATA_OTHER).on(SOME_DATA_OTHER.SOME_DATA_MASTER_ID.eq(SOME_DATA_MASTER.ID))
                .where(SOME_DATA_MASTER.ID.eq(id))
                .groupBy(SOME_DATA_MASTER.ID)
                .fetchOneInto(SomeDataMasterDto.class);

        return someDataMasterDto;
}

我尝试在springboot中重写objectmapper,例如:

@Configuration
public class JacksonObjectMapper {

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper mapper = new ObjectMapper();
        mapper.registerModule(new JavaTimeModule());

        return mapper;
    }
}

但我认为,jooq使用自己创建的objectmapper。我还尝试了stackoverflow的其他示例(使用 Jackson2ObjectMapperBuilder , DateFormatter …)但没有成功。
环境:
jdk 11号
作业质量3.14.4
Spring Boot2.4.1
postgresql 12.2版

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题