是否可以从字符串映射 jooq 记录

Is it possible to map jooq Record from string

我有一个案例需要将 jooq 记录从 json 映射到 class 实例。我们过去为此使用了自己的映射器,但底层 table 只有基本类型,所以它工作正常。现在我们需要将 Postgres interval 类型映射到 jooq YearToSecond 并且它不再工作了。

我想知道是否有办法通过 jooq api 创建这些,或者至少以某种方式到达 jooq 使用的底层映射器(我假设 jooq 下面有某种映射器)。

示例: {"my_text":"This is text","my_interval_type":"05:00:00"} 反序列化为 MyRecord class 将具有 String myTextYearToSecond myIntervalType 字段

将 JSON 字符串映射到 jOOQ Result 值的基本方法是使用 DSLContext.fetchFromJSON(String).

不幸的是,从 jOOQ 3.16 开始,您还不能为该机制提供数据类型信息,因此一切都是 String,没有隐含的 YearToSecond 支持。有一个待处理的功能请求 https://github.com/jOOQ/jOOQ/issues/12012,应该会尽快发布,因为它确实非常有用。

该功能请求只是打开 jOOQ 内部结构的问题,您已经正确地假设它存在。 jOOQ 3.16 中的相关 class 是 org.jooq.impl.JSONReader,如果您愿意通过反射访问 jOOQ 的内部结构,它可以作为解决方法为您解决问题?