如何在pom文件中使用r2dbc驱动生成jooq类

问题描述 投票:0回答:2

是否可以在 pom 文件中使用 r2dbc 驱动程序生成 jooq 类。例如,在下面的示例中,替换 jdbc 标签并使用 r2dbc。我正在使用 jooq 和 r2dbc,我也想将 jdbc 包含在其中。

<plugin>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-codegen-maven</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <jdbc>
                        <url>${env.DATABASE_URL}</url>
                        <user>${env.DATABASE_USER}</user>
                        <password>${env.DATABASE_PASS}</password>
                        <driver>${spring.datasource.driver}</driver>
                    </jdbc>
                    <generator>
                        <database>
                            <name>org.jooq.meta.mysql.MySQLDatabase</name>
                            <includePackages>false</includePackages>
                            <!--  <includeRoutines>false</includeRoutines>-->
                            <unsignedTypes>false</unsignedTypes>
                            <integerDisplayWidths>false</integerDisplayWidths>
                            <forcedTypes>
                                <forcedType>
                                    <name>INTEGER</name>
                                    <expression>.*</expression>
                                    <types>(?i:TINYINT)</types>
                                </forcedType>
                                <forcedType>
                                    <name>DOUBLE</name>
                                    <expression>.*</expression>
                                    <types>DECIMAL</types>
                                </forcedType>
                            </forcedTypes>
                            <schemata>
                                <schema>
                                    <inputSchema>myschema</inputSchema>
                                </schema>
                            </schemata>
                        </database>
                        <target>
                            <packageName>com.jooq.db</packageName>
                            <directory>target/generated-sources/jooq</directory>
                        </target>
                    </generator>
                </configuration>
            </plugin>
spring-boot jooq r2dbc
2个回答
4
投票

那是不可能的。代码生成器仅适用于 JDBC。除了能够重用相同驱动程序进行代码生成和运行时的微小便利之外,使所有代码生成查询成为反应式的麻烦绝对不会给最终用户带来任何价值。特别是在使用 Maven 插件的情况下,您可以将 JDBC 驱动程序依赖项限制为仅适用于插件,而不适用于构建或应用程序的其余部分。

因此,只需使用 JDBC 驱动程序来生成代码即可。


0
投票

为了完整起见,jooq 3.18.7(和 Kotlin)的工作配置具有 JDBC 驱动程序插件依赖项 Lukas 提到:

<plugin>
  <groupId>org.jooq</groupId>
  <artifactId>jooq-codegen-maven</artifactId>
  <version>${jooq.version}</version>
  <dependencies>
      <!-- Using JDBC Driver for code generation -->
      <dependency>
          <groupId>com.mysql</groupId>
          <artifactId>mysql-connector-j</artifactId>
          <version>8.3.0</version> 
      </dependency>
  </dependencies>
  <executions>
      <execution>
          <id>jooq-codegen</id>
          <phase>generate-sources</phase>
          <goals>
              <goal>generate</goal>
          </goals>
          <configuration>
              <jdbc>
                  <driver>com.mysql.cj.jdbc.Driver</driver>
                  <url>jdbc:mysql://${env.DATABASE_HOST}:${env.DATABASE_PORT}/${env.DATABASE_SCHEMA}</url>
                  <user>${env.DATABASE_URL}</user>
                  <password>${env.DATABASE_PASS}</password>
              </jdbc>
              <generator>
                  <name>org.jooq.codegen.KotlinGenerator</name>
                  <database>
                      <name>org.jooq.meta.mysql.MySQLDatabase</name>
                      <inputSchema>${env.DATABASE_SCHEMA}</inputSchema>
                      <includes>.*</includes>
                      <excludes></excludes>
                  </database>
                  <generate>
                      <deprecated>false</deprecated>
                      <records>true</records>
                      <immutablePojos>true</immutablePojos>
                      <fluentSetters>true</fluentSetters>
                  </generate>
                  <target>
                      <packageName>com.jooq.db</packageName>
                      <directory>target/generated-sources/jooq</directory>
                  </target>
              </generator>
          </configuration>
      </execution>
  </executions>
© www.soinside.com 2019 - 2024. All rights reserved.