2

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

我的堆栈(在演示中)是:JOOQ Hibernate Jackson。

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

我已经在强制类型表达式字段中尝试了各种名称: . 简单名称。, . 简单的名字。, . 暗示。, . 实施。, . json。, . JSON。, . jsonb。, . JSONB。,

尝试将绑定中的 sql 设置设置为 ::json 、 ::jsonb 、 ::_jsonb

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

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

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

4

1 回答 1

0

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

它当前的实现方式,您不能JPADatabase在与实体本身被编译的相同 Maven 阶段中处理您的实体。它们在JPADatabase. 您必须将实体提取到单独的项目中并在第二步中生成 jOOQ 代码。

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

于 2019-06-06T13:42:18.587 回答