投影行类型
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
与大多数方言一样,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
始终在执行的客户端应用。
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的反馈!