如何使 JOOQ codegen 与基于 Oracle 版本的重新定义一起使用?

How do I make JOOQ codegen work with Oracle Edition-Based Redefinition?

我正在处理一个使用 Oracle 数据库的项目,我们决定在其中启用 Edition based redefinition。我们还使用 jooq-codegen 根据我们在数据库中创建的对象创建 Java 对象。

我已通读 documentation for jooq-codegen,但在寻找使 JOOQ 与 Oracle 版本兼容的方法时遇到问题。通常我会使用 alter session set edition=<some edition> 语句连接到正确的版本,但我找不到使用 jooq-codegen 的方法。

有没有办法用 jooq-codegen 进行初始化查询,或者甚至可以用 jooq-codegen 指定版本?我希望有一些我忽略的东西,因为我在文档中找不到它。

我认为这无关紧要,但我正在使用 Maven,这将是 Jenkins 中的 运行。

这是一个有趣的案例,在代码生成器初始化 JDBC 连接后,能够 运行 额外的 SQL 语句可能会有所帮助。可能值得 feature request you could report here.

作为解决方法,您始终可以:

  • 从 jOOQ-meta 模块扩展 OracleDatabase 并覆盖 create0() 方法,它为所有代码生成元查询提供初始化 DSLContext
  • 使用 programmatic code generation configuration 并在将其传递给代码生成器之前自行初始化 JDBC 连接