JOOQ代码生成 - 将多个模式组合到单个包

时间:2017-12-12 08:16:36

标签: maven code-generation jooq

我有多个模式,其中包含将在不同模式之间移动的表。这当然会导致随着表在不同模式之间移动而不时地打破导入。

有没有办法组合这些多个模式,以便所有导入都来自同一个包,所以如果表从模式A移动到模式B,我就不必更改导入。所以我会输入如下: / p>

import company.jooq.tables.TABLEA
import company.jooq.tables.TABLEB

而不是导入如:

import company.jooq.schemas.SchemaNameA.tables.TABLEA
import company.jooq.schemas.SchemaNameB.tables.TABLEB

我试图创建一个自己的GeneratorStrategy。它正确创建包但在编译阶段失败,因为Keys文件被不同的模式覆盖,因此它不包含所有需要的密钥。然后我尝试利用我的pom.xml中的relations标签来摆脱Keys.java文件的生成,但它仍然生成了密钥。

<generate>
    <relations>false</relations>
</generate>

我正在做的事情似乎与某些事情应该如何完成有关,但有没有办法让这种设置与JOOQ一起工作?即使它有点笨拙也不重要,因为这种情况只是暂时的。

pom.xml的有趣部分:

<properties>
    <jooq.version>3.10.2</jooq.version>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.jooq</groupId>
            <artifactId>jooq-codegen-maven</artifactId>
            <version>${jooq.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.1.39</version>
                </dependency>
            </dependencies>
            <configuration>
                <jdbc>
                    <driver>com.mysql.jdbc.Driver</driver>
                    <url>${db.url}</url>
                    <user>${db.user}</user>
                    <password>${db.password}</password>
                </jdbc>
                <generator>
                    <strategy>
                       <name>my.generator.GeneratorStrategy</name>
                    </strategy>
                    <database>
                        <name>org.jooq.util.mysql.MySQLDatabase</name>
                        <includes>.*</includes>
                        <excludes>del_.*|tmp_.*|</excludes>
                        <schemata>
                            <schema>
                                <inputSchema>${db.schemaA}</inputSchema>
                                <outputSchemaToDefault>true</outputSchemaToDefault>
                            </schema>
                            <schema>
                                <inputSchema>${db.schemaB}</inputSchema>
                                <outputSchemaToDefault>true</outputSchemaToDefault>
                            </schema>
                        </schemata>
                    </database>
                    <target>
                        <packageName>jooq.schemas</packageName>
                        <directory>src/main/java</directory>
                    </target>
                    <generate>
                        <javaTimeTypes>true</javaTimeTypes>
                        <relations>false</relations>
                    </generate>
                </generator>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>org.jooq</groupId>
        <artifactId>jooq</artifactId>
        <version>${jooq.version}</version>
    </dependency>
    <dependency>
        <groupId>org.jooq</groupId>
        <artifactId>jooq-codegen</artifactId>
        <version>${jooq.version}</version>
    </dependency>
</dependencies>

0 个答案:

没有答案