【问题标题】:JOOQ MULTISET constructorJOOQ MULTISET 构造函数
【发布时间】:2022-01-22 05:39:30
【问题描述】:
context.select(
      AUTHOR.FIRST_NAME,
      AUTHOR.LAST_NAME,
      multiset(
          selectDistinct(
              BOOK.language().CD,
              BOOK.language().DESCRIPTION)
          .from(BOOK)
          .where(BOOK.AUTHOR_ID.eq(AUTHOR.ID))
      ).as("books"),
      multiset(
          selectDistinct(BOOK_TO_BOOK_STORE.BOOK_STORE_NAME)
          .from(BOOK_TO_BOOK_STORE)
          .where(BOOK_TO_BOOK_STORE.tBook().AUTHOR_ID
              .eq(AUTHOR.ID))
      ).as("book_stores"))
  .from(AUTHOR)
  .orderBy(AUTHOR.ID)
  .fetch();

我无法获得多重设置。它抛出错误“无法解析符号多集”。 我应该添加哪些依赖项 get get multiset 构造函数?

【问题讨论】:

    标签: spring-boot jooq


    【解决方案1】:

    这个问题最流行的两种解释是:

    1。你没有使用正确的 jOOQ 版本

    由于您使用的是 Spring Boot,当引入了新的 MULTISET 运算符时,您可能会使用 jOOQ 3.14 而不是 3.15。 Spring Boot 2.x 不会再升级到比 3.14 更新的 jOOQ 版本,因为 jOOQ 3.15 开源版有 Java 11 的 JDK 基线,而 Spring Boot 2.x 仍然需要 Java 8(Spring Boot 3.0 增加了自己的baselibe 到 Java 17,修复了这个限制)

    But you can easily override the jOOQ dependency introduced by the spring-boot-starter-jooq as explained in this blog post here。如果您使用的是 Maven,只需使用以下命令检查您的依赖项:

    mvn dependency:tree
    

    2。您缺少通常的静态导入

    所有 jOOQ 手册都假设您声明了一些静态导入,包括最重要的一个:

    import static org.jooq.impl.DSL.*;
    

    因为手册中记录的multiset() 只是DSL.multiset() 的缩写,假设上述静态导入。 See also this section of the manual.

    【讨论】:

      猜你喜欢
      • 2021-11-30
      • 2021-12-01
      • 2017-09-26
      • 2017-11-23
      • 2012-06-30
      • 1970-01-01
      • 2013-10-13
      • 2017-01-21
      • 1970-01-01
      相关资源
      最近更新 更多