是否可以为 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 代码生成提供渲染设置?的主要内容,如果未能解决你的问题,请参考以下文章