可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

投影行类型

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

与大多数方言一样,jOOQ 也仅使用第一个集合操作子查询的列名和类型作为结果行类型。这在应用转换器时尤其重要,包括临时转换器附加到生成代码的转换器

由于 jOOQ 不知道哪个联合子查询生成哪一行,因此如果投影行类型不完全相同,它就无法消除这些行的歧义。因此,以下示例中的临时转换器将被忽略

Result<Record1<Integer>> result =
create.select(BOOK.ID)
   .from(BOOK)
   .union(

    // This has no effect
    select(AUTHOR.ID.convertFrom(i -> -i))
   .from(AUTHOR))
   .fetch();

虽然这可能会导致细微的错误,但这是完全合理的,因为知道 Converter 始终在执行的客户端应用。

反馈

您对此页面有任何反馈吗? 我们很乐意听到您的反馈!

The jOOQ Logo