我使用液化基和jooq,我需要直接从清算基xml文件生成pojo,但是我在用Postgres覆盖默认的"H2“方言时遇到了问题。实际上,我尝试通过插件“配置”部分中的属性设置方言,但它仍然使用H2。请有人问我,在读取xml文件和生成java类时,如何使jooq使用postgres方言。
以下是已使用的库版本
<properties>
<jooq.version>3.13.4</jooq.version>
<vertx-jooq.version>5.1.1</vertx-jooq.version>
<postgres.version>42.2.12</postgres.version>
</properties>这是我的插件配置
<plugin>
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
<version>${jooq.version}</version>
<executions>
<execution>
<id>jooq-generate</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgres.version}</version>
</dependency>
<dependency>
<groupId>io.github.jklingsporn</groupId>
<artifactId>vertx-jooq-generate</artifactId>
<version>${vertx-jooq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.3.9</version>
</dependency>
<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq-meta-extensions</artifactId>
<version>${jooq.version}</version>
</dependency>
</dependencies>
<configuration>
<generator>
<name>io.github.jklingsporn.vertx.jooq.generate.classic.ClassicReactiveVertxGenerator</name>
<database>
<name>org.jooq.meta.extensions.liquibase.LiquibaseDatabase</name>
<properties>
<property>
<key>scripts</key>
<value>src/main/resources/liquibase/tenant/changelog.xml</value>
</property>
<property>
<key>changeLogParameters.contexts</key>
<value>!test</value>
</property>
<-- unfortunately this property doesn't work -->
<property>
<key>dialect</key>
<value>POSTGRES</value>
</property>
</properties>
<outputSchemaToDefault>true</outputSchemaToDefault>
<unsignedTypes>false</unsignedTypes>
<forcedTypes />
</database>
<generate>
<daos>true</daos>
<fluentSetters>true</fluentSetters>
</generate>
<target>
<packageName>org.folio.rest.jooq</packageName>
</target>
<strategy>
<name>io.github.jklingsporn.vertx.jooq.generate.VertxGeneratorStrategy</name>
</strategy>
</generator>
</configuration>
</plugin>发布于 2020-08-11 07:09:04
从jOOQ 3.14开始,jOOQ代码生成器的org.jooq.meta.extensions.liquibase.LiquibaseDatabase数据源将H2幕后的H2用于模拟迁移,而不是实际在目标数据库上运行迁移。这允许在没有实际数据库实例和连接的情况下使用jOOQ和您的清算库迁移脚本。在将来,可以透明地使用testcontainers:https://github.com/jOOQ/jOOQ/issues/6551来拆分一个https://github.com/jOOQ/jOOQ/issues/6551实例。
下面是一个如何设置它的示例:https://github.com/jOOQ/jOOQ/tree/main/jOOQ-examples/jOOQ-testcontainers-example (不太难)
如果您希望使用实际的PostgreSQL数据库,只需在运行jOOQ代码生成之前,在运行两个连接到同一数据库服务器的情况下,使用清算基maven插件运行清算库迁移即可。
https://stackoverflow.com/questions/63339678
复制相似问题