【问题标题】:Is it possible to supply render settings for jOOQ code generation?是否可以为 jOOQ 代码生成提供渲染设置?
【发布时间】: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 使用引号来强制区分大小写。

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

提前致谢!

【问题讨论】:

    标签: h2 jooq


    【解决方案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 以编程方式实现了我想要的目标。
    猜你喜欢
    • 1970-01-01
    • 2015-01-26
    • 2021-10-28
    • 2012-07-13
    • 1970-01-01
    • 2015-01-20
    • 2020-04-25
    • 1970-01-01
    • 2014-09-09
    相关资源
    最近更新 更多