Java 无法使用JPADatabase从H2生成Jooq类
我目前正在尝试从jpa实体生成jooq类,而不是使用现有的db 接下来,使用jooq版本3.9.1,我当前的pom插件部分如下Java 无法使用JPADatabase从H2生成Jooq类,java,jooq,Java,Jooq,我目前正在尝试从jpa实体生成jooq类,而不是使用现有的db 接下来,使用jooq版本3.9.1,我当前的pom插件部分如下 <profile> <id>jooq-jpa</id> <build> <plugins> <plugin> <groupId
<profile>
<id>jooq-jpa</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<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>
<dependencies>
<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq-meta-extensions</artifactId>
<version>${jooq.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<logging>INFO</logging>
<generator>
<database>
<name>org.jooq.util.jpa.JPADatabase</name>
<includes>.*</includes>
<excludes></excludes>
<properties>
<property>
<key>packages</key>
<value>my.entity</value>
</property>
</properties>
</database>
<target>
<packageName>com.myentity.jooq</packageName>
<directory>${project.build.directory}/generated-sources/jooq</directory>
</target>
</generator>
</configuration>
</plugin>
</plugins>
</build>
</profile>
您的实体可能与您放置插件的模块位于同一模块中。这意味着在编译模块之前调用jOOQ代码生成器,这意味着当jOOQ代码生成器试图查找JPA注释的实体时,这些实体尚未编译 解决方案是创建以下模块依赖关系图:
+-------------------+
|您的JPA实体|
+-------------------+
^ ^
取决于
| |
+---------------------+ +---------------------+
|jOOQ codegen插件| |您的应用程序|
+---------------------+ +---------------------+
| |
生成| |取决于
v v
+-------------------------+
|jOOQ生成的类|
+-------------------------+
为了澄清这一点,我注册了一个问题来改进文档:您的JPA注释实体是否位于jOOQ代码生成器插件的类路径上?也就是说,它们是在生成jOOQ代码之前编译的吗?不是。它们是插件设置所在模块的一部分。它应该在运行生成器之前编译吗?在运行插件之前,用编译过的实体对它进行了测试,它确实工作了。非常感谢卢卡塞德。你能把它作为一个答案贴出来,这样我就可以把它标记为已接受,并帮助其他可能遇到同样问题的人吗?
[INFO] ARRAYs fetched : 0 (0 included, 0 excluded)
[INFO] Enums fetched : 0 (0 included, 0 excluded)
[INFO] Packages fetched : 0 (0 included, 0 excluded)
[INFO] Routines fetched : 0 (0 included, 0 excluded)
[INFO] Tables fetched : 0 (0 included, 0 excluded)
[INFO] UDTs fetched : 0 (0 included, 0 excluded)
[INFO] Excluding empty catalog :
[INFO] Removing excess files