是否可以为 jOOQ 代码生成提供渲染设置?

Posted

技术标签:

【中文标题】是否可以为 jOOQ 代码生成提供渲染设置?【英文标题】:Is it possible to supply render settings for jOOQ code generation? 【发布时间】:2019-05-22 21:43:10 【问题描述】:

我正在尝试针对 H2 数据库运行 jOOQ 代码生成器,但遇到以下异常:

23:59:27.191 [main] ERROR org.jooq.meta.AbstractDatabase - Could not load schemata  
org.jooq.exception.DetachedException: Cannot execute query. No Connection configured
        at org.jooq_3.11.7.mysql.debug(Unknown Source)
        at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:319)
        ...

我已验证该数据库确实存在。我怀疑这是由于区分大小写处理不匹配造成的:

jOOQ 引用所有模式对象的名称作为指定不区分大小写的一种方式......但是, H2 使用引号来强制区分大小写。

我知道如何以编程方式指定渲染设置以使用生成的工件(构建查询等),但在这种特殊情况下,我正在寻找一种方法来在代码生成器的配置中指定这些设置。

提前致谢!

【问题讨论】:

【参考方案1】:

人工堆栈跟踪元素at org.jooq_3.11.7.MYSQL.debug(Unknown Source) 表示您正在使用SQLDialect.MYSQL 方言来生成SQL 代码,这显然不适用于H2。此外,您的Configuration 没有如错误消息所示的 JDBC 连接,因此您实际上无法通过 jOOQ 执行任何查询。

代码生成器不提供您正在寻找的功能。要“取消引用”所有标识符,请使用 identifier style settings at runtime。

【讨论】:

嗨 Lukas - 我没有使用MySQL 方言,而是使用/与 MySQL 兼容模式连接到 H2。但是我使用GenerationTool -> withGenerator -> withStrategy -> withMatchers -> withSchemas -> withSchemaClass -> withExpression -> AS_IS 以编程方式实现了我想要的目标。

以上是关于是否可以为 jOOQ 代码生成提供渲染设置?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以结合 MyBatis 和 QueryDSL/jOOQ?

jOOQ 可以为 Oracle 同义词生成代码吗?

在 Jooq 中集成 Hikari 池

JOOQ 使用 Maven 代码生成设置 Oracle

Jooq 不会为失败抛出异常

jOOQ 不生成将 <daos> 标志设置为 true 的 DAO