code-generation - Jooq 代码生成 "excludes"不适用于类型安全配置

标签 code-generation jooq typesafe-config jooq-sbt-plugin

我试图排除使用 TypeSafe Config 时由 Liquibase 创建的两个表。

jooq {
    # databasechangelog = Liquibase generated tables
    # databasechangeloglock = Liquibase generated tables
    excludes = "databasechangelog, databasechangeloglock"
  }

当我只提供一个排除项(例如“databsechangelog”)时,它可以工作。

多个排除项应以逗号分隔 ( http://www.jooq.org/doc/2.6/manual/code-generation/codegen-configuration/ ),但它却生成了两个表。

这样做也是不允许的。

排除 = "databasechangelog", "databasechangeloglock"

在库内部,它简化了调用(注意:getExcludes是一个String)

    database.setExcludes(new String[]{StringUtils.defaultString(d1.getExcludes())});

还有其他人遇到过这个问题吗?

这是我的代码生成

      new GenerationTool {
        setConnection(connection)
        run(new Configuration {
          withGenerator(new Generator {
            withName(config.jooq.generatorClass)
            withDatabase(new org.jooq.util.jaxb.Database {
              withIncludes(config.jooq.includes)
              withExcludes(config.jooq.excludes)
              withInputSchema(config.jooq.inputSchema)
              withName(config.jooq.databaseClass)
            })
            withTarget(new Target {
              withPackageName(config.jooq.pkg)
              withDirectory(config.jooq.directory)
            })
            withGenerate(new Generate {
              setDaos(true)
            })
          })
        })
      }

最佳答案

您正在引用 2.6 版本的手册。过去,我们在包含/排除中使用逗号分隔的表达式列表 - 但不管你信不信,有些人的表/列名称中包含逗号,这就是我们丢弃逗号的原因。毕竟,包含/排除只是正则表达式,您可以使用“联合运算符”(管道:|

)分隔各个模式。

即写:

jooq {
    # databasechangelog = Liquibase generated tables
    # databasechangeloglock = Liquibase generated tables
    excludes = "databasechangelog|databasechangeloglock"
}

这也记录在“功能删除”部分中(查找“逗号分隔”): http://www.jooq.org/doc/latest/manual/reference/migrating-to-3.0

关于code-generation - Jooq 代码生成 "excludes"不适用于类型安全配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33030271/

相关文章:

java - 使用 Java 在编译时生成代码?

java - 将任意类型安全配置写入 hocon 文件的标准化方法?

apache-spark - 如何在Spark 1.2.0中将配置文件添加到所有Spark执行程序的类路径中?

java - Information_schema 不是从 jooq for SQL Server 生成的

java - 在另一个库中配置ActorSystem

java - 生成Getter时如何忽略注解?

go - 从 Go 程序中获取保留字列表

algorithm - 置换函数调用

java - 找不到使用 jOOQ 在 CommonTableExpression 中选择数据的正确方法

java - JooQ Ant 代码生成不起作用