问题标签 [jooq-codegen-maven]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
97 浏览

java - 无法使用自定义生成器策略为 getter 名称创建记录

我在 jOOQ 3.13.1,dropwizard 2.0.7。为了一起制作 jOOQ 和 dropwizard,我正在使用(https://droptools.bendb.com/jooq/)。我正在使用自定义生成策略来为我的 setter 和 getter 维护驼峰式案例。名字按预期出现。

记录对象具有各自列的数据。但是,我不断从我的数据库中收到错误,我试图在非空列上设置“空”。

我仅在尝试创建新记录时才看到此问题。更新记录工作得很好。

如果我打印记录,它看起来像这样:

我的吸气剂名称是:“getId”、“getUserId”、“getAction”、“getError”、“getCreatedAt”、“getUpdatedAt”、“getStatus”。

对于小写的列,我看不到任何问题。如果对于列名在 CamelCase 中的地方,问题。

该类看起来像:

对于代码生成,我正在关注这里的文档https://www.jooq.org/doc/3.13/manual/code-generation/codegen-generatorstrategy/

我的生成器类看起来像:

0 投票
1 回答
100 浏览

postgresql - JOOQ 可以为 H2/Postgresql 别名 Liquibase JSONB 数据类型吗

我正在使用这个 H2 功能在 jdbc 字符串中为 JSONB 创建一个别名:

但是 JOOQs 的 codegen liquibase 支持(指向 liquibase 文件的生成器)无法识别 JSONB 列类型。我不断得到:

原因:liquibase.exception.DatabaseException:未知数据类型:“JSONB”;

有没有办法告诉生成器将此数据类型别名为 TEXT?

0 投票
1 回答
656 浏览

java - 如何使用 Jooq 获取多个级别的一对多嵌套

这是场景,我有 5 个相互之间有一对多关系的表,我必须在下面给定 Pojos 和 Jooq 中以分层方式映射结果数据。

DB表是a,b,c,d,e

预期的样本响应

我首先尝试过这样的事情,但它没有用,因为 fetch groups 只接受 2 个参数

然后我得到了这篇文章,并按照下面给出的方法进行了尝试,并尝试了这篇文章中给出的其他 2 种方法,但这也没有奏效,因为Collectors.toMap只接受 2 个参数,我必须获取 5 级分层数据。

0 投票
2 回答
153 浏览

kotlin - kotlin 字段 foo 和 isFoo 冲突:以下声明具有相同的 JVM 签名

编译器报告错误:

平台声明冲突:以下声明具有相同的 JVM 签名 (setFoo(Ljava/lang/String;)V): public final fun (<set-?>: String?): Unit defined in com.example.Bar public final fun (<set-?>: String?): com.example.Bar 中定义的单位

如何提示编译器为 setter 使用原始字段名称?(setFoo 和 setIsFoo) 注意:代码是由 jooq 生成的(来自数据库模式),所以手动更改代码不是一个好方法

0 投票
1 回答
305 浏览

hibernate - 通过自定义复合用户类型的 JPADatabase 问题生成 JOOQ 代码

我正在尝试使用 JPA Entity 的 JOOQ 代码生成。我已经创建了一个专用的 maven 模块,将在其中生成代码,该模块依赖于包含所有实体的模块以及带有 jooq 的代码生成插件。

为了更清楚地说明项目结构,这里是模块:(名称是组成的,但结构反映了我正在处理的当前项目)

所以最后我想要的是,当我构建 net-example-jooq 时,它应该能够从 net-example-data 中找到的实体生成 jooq 类。

net-example-jooq 的 pom.xml

这是包含自定义类型的实体之一。

自定义类型使用 package.info 定义

当我从根目录(包括数据模块、jooq 模块和其他)运行 mvn 编译项目时,我在构建 jooq 模块时收到以下错误。

对于一个简单的自定义类型,如果我使用 JPA 属性转换器,那么它可以正常工作。我知道没有直接支持通过 JPA 属性转换器将多个列与单个属性匹配(如果我没记错的话)

谁能在这里指导我如何使用 JPADatabase 处理 JOOQ 代码生成的复合类型?谢谢。

更新:

关于代码生成的问题是关于投影结构以及类路径中缺少类的位置。但是,关于复合类型的处理,请参阅接受的答案。

0 投票
1 回答
144 浏览

jooq - 尽管配置,JOOQ 不会忽略未知功能

由于框架未知的功能,我的 jOOQ 代码生成配置失败。配置使用org.jooq.meta.extensions.ddl.DDLDatabase,旨在从 Flyway 迁移脚本生成代码。错误如下:

通过检查文档,我看到有一个parseUnknownFunctions解析器属性,据我所知,当设置为IGNORE. 这似乎没有任何效果。

我也知道有一种解决方法可以让 jOOQ 通过添加注释来忽略 SQL 文件的某些部分。在我的情况下这是不可能的,因为我不是 SQL 文件的所有者。

我还有其他选择吗?

以下是导致错误的脚本和 pom.xml 中的 jOOQ 配置:

0 投票
1 回答
59 浏览

triggers - jOOQ 代码生成在触发器上失败 - 如何跳过它们?

在我的应用程序中,我使用 Flyway 迁移数据库。我有一个包含数据库结构的 SQL 文件,其中包含一些CREATE TRIGGER语句。jOOQ 代码生成失败,因为它使用不支持触发器的 H2。解决此问题的最佳方法是什么?

  1. 我可以跳过CREATE TRIGGER关于代码生成的语句吗?
  2. 将语句重构CREATE TRIGGER为单独的 SQL 文件。我可以根据文件名跳过 SQL 文件以进行代码生成吗?
  3. 我可以使用例如 docker 来启动 MariaDB 服务器,而该服务器使用 H2 来生成代码吗?

或者,也许您对如何处理触发器创建有更好或更好的想法?

0 投票
1 回答
104 浏览

postgresql - 有没有办法在 JOOQ 中为具有相同表结构的多个模式设置代码生成?

我们有一个多租户数据库,每个租户都有自己的专用模式。模式始终具有相同的表结构。我想弄清楚的是,在使用代码生成跟踪架构时,是否有办法在查询时将架构传递给 JOOQ。就像是:

似乎模式总是与表对象相关联,并且在运行时映射的唯一选项是静态地通过输入模式和输出模式。

环境信息:Java/Kotlin、Maven、Spring Boot、Postgres、Flyway

0 投票
1 回答
309 浏览

java - 尝试更新到“org.jooq:jooq-codegen-maven:3.15.1”时构建失败

[错误] 无法执行目标 org.jooq:jooq-codegen-maven:3.15.1:generate (default) on project event-dao-jooq: 执行默认目标 org.jooq:jooq-codegen-maven:3.15.1 :generate failed: 由于 API 不兼容,无法在插件 'org.jooq:jooq-codegen-maven:3.15.1' 中加载 mojo 'generate':org.codehaus.plexus.component.repository.exception.ComponentLookupException: org/jooq/codegen/maven/Plugin 已由更新版本的 Java Runtime(类文件版本 55.0)编译,此版本的 Java Runtime 仅识别最高 52.0 的类文件版本

0 投票
0 回答
75 浏览

oracle11g - 使用 Jooq 3.7.1 版本将 oracle 11g 迁移到 19c 会显着降低数据库的性能(插入)

目前我们在我们的应用程序中使用 jooq 3.7.1 专业版和 oracle 11g 数据库。现在我们需要将数据库从 11g 升级到 19c,所以我们使用 ojdbc8.jar 连接到 oracle 19c 并传递 ORACLE12C 方言,因为 Jooq 3.7.1 提供方言直到 12C。

升级到 19C 后,在运行性能测试时,数据库中的插入非常慢。

我的问题是,是不是因为 jooq 3.7.1 中的 ORACLE12C 方言?

我们真的需要升级 jooq 版本来克服这种性能下降吗?