java - JOOQ 代码生成器跳过包含 JsonNode 字段的类

标签 java jpa jooq jsonb jsonnode

我目前正在开发一个项目,该项目使用 JOOQ 与 Postgres 进行 sql 事务处理。但是其中一个模型有一个 JsonNode 类型的字段(postgres 中的 jsonb )。 JOOQ 代码生成器不支持这个,所以我添加了一个自定义绑定(bind),它应该可以解决问题,但即使加载了绑定(bind),它也永远不会应用于特定模型,生成器只是跳过这个模型。

我的堆栈(在演示中)是: JOOQ hibernate jackson 。

演示项目提供了两个模型,一个有效,一个带有 JsonNode,以显示生成器实际运行并扫描模型,但跳过包含 JsonNode 字段的模型。

我已经在 forcedType 表达式字段中尝试了多种名称:.simplename. , .SIMPLENAME., .impl., . IMPL., .json., .JSON., .jsonb., .JSONB.,

试图设置 sql 绑定(bind)到::json ,::jsonb,::_jsonb

尝试将寄存器类型设置为 Types.VARCHAR、Types.OTHER、Types.JAVA_OBJECT

以下 repo https://github.com/mmichailidis/JooqDemo包含重现问题的项目

预期的输出是在 jooq 生成的文件夹中生成两个模型,但只生成没有 JsonNode 的模型。

最佳答案

您正在使用 JPADatabase:https://www.jooq.org/doc/latest/manual/code-generation/codegen-jpa

按照目前的实现方式,您无法在实体本身被编译的同一 Maven 阶段中使用 JPADatabase 处理您的实体。它们在 JPADatabase 的类路径中尚不可用。您必须将您的实体提取到一个单独的项目中,并在第二步中生成 jOOQ 代码。

您可能会看到其中一个模型的原因可能是因为您之前已经通过其他方式在本地存储库中安装了它们。

关于java - JOOQ 代码生成器跳过包含 JsonNode 字段的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56478042/

相关文章:

java - CriteriaBuilder 查询在使用 fetch 时中断,但在不使用 fetch 的情况下工作

jpa - IllegalArgumentException:您试图为预期类型为 java.math.BigDecimal 的参数标记设置类型为 java.lang.String 的值

java - jOOQ 在预期 UTC 时使用本地时区设置时间戳

java - Java 中没有无符号字节

java - 当 B 扩展 A 时从 List<A> 转换为 List<B>

java - 如何在Java Map中进行for循环检查并在if语句后将值设置为假?

open-source - 我的开源库正在稳定。现在如何获得关注?

java - 多线程连接(长毫秒)操作

java - JPA EntityTransaction 抛出 java.lang.IllegalStateException

java - jOOQ 子查询给出编译错误“SelectWhereStep 类型中的方法 where(Condition...)...不适用于参数