该错误与特定查询无关,而是与依赖关系管理有关.
java.util.concurrent.Flow
类只添加到JDK 9中,但在JDK 8中还没有.从Jooq3.15开始,jOOQ开源版本有一个Java11基线,因此直接依赖于JDK11API,包括Flow
.如果您希望继续使用Java 8和jOOQ 3.15,则需要升级到商业发行版,这些发行版继续支持Java 8.您可以在这里找到jOOQ的Java版本支持列表:
尽管使用了商业版,但您可能仍然意外地拉取了jOOQ开源版本的依赖项,从而遇到此错误的一个常见原因可能与使用第三方依赖项管理框架有关,例如Spring Boot,它默认依赖于jOOQ开源版本.这篇博客文章解释了如何解决这个问题:
此外,确保在代码生成设置和运行时都使用了正确的依赖项,如this section of the manual中所示.
上面写着:
<!-- Specify the maven code generator plugin -->
<!-- Use org.jooq for the Open Source Edition
org.jooq.pro for commercial editions with Java 17 support,
org.jooq.pro-java-11 for commercial editions with Java 11 support,
org.jooq.pro-java-8 for commercial editions with Java 8 support,
org.jooq.trial for the free trial edition with Java 17 support,
org.jooq.trial-java-11 for the free trial edition with Java 11 support,
org.jooq.trial-java-8 for the free trial edition with Java 8 support
Note: Only the Open Source Edition is hosted on Maven Central.
Import the others manually from your distribution -->
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
<version>3.16.5</version>
所以你需要 Select 其中一个:
- 如果你已经获得许可证的话
<groupId>org.jooq.trial-java-8</groupId>
如果你在试jOOQ
或者,如果您希望使用jOOQ开源版本,您必须恢复到3.14版本,该版本仍然使用Java 8作为基准——或者,为什么不抓住机会升级到Java 17...