如何使 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 连接
我正在处理一个使用 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 连接