gpt4 book ai didi

java - jOOQ支持查询本地结果吗?

转载 作者:太空宇宙 更新时间:2023-11-04 06:14:57 25 4
gpt4 key购买 nike

假设您已从数据库中获取了一些数据:

Record r = <DSLContext>.select()...fetch();

jOOQ支持对结果进行进一步的本地查询吗?

<DSLContext>.select(...).from(r).where(...)...fetch();

有时,根据数据库上的早期查询在本地查询结果是有意义的。

我在文档中找不到任何有用的内容,所以我想答案是否定的。然而,无论如何,我在这里提出这个问题,是为了确定性,并可能引发一些关于此功能的想法或讨论(尽管这不是这样做的目的)。

最佳答案

如果您确实想要再次往返数据库,那么可以,您可以创建一个新的 org.jooq.Table来自org.jooq.Result使用DSL.table(Result) :

select(...)
.from(DSL.table(result))
.where(...)
.fetch();

这将使用 SQL VALUES(...) constructor 生成一个表如果您的数据库支持该功能,或者使用 UNION ALL 的派生表,否则:

-- If database supports VALUES()
SELECT ...
FROM (VALUES (1, 'a'),
(2, 'b'),
(3, 'c')) t(column1, column2)
WHERE ...

-- Otherwise
SELECT ...
FROM (SELECT 1 column1, 'a' column2 UNION ALL
SELECT 2 , 'b' UNION ALL
SELECT 3 , 'c') t
WHERE ...

-- actual SQL may vary, of course

jOOQ 3.6 的路线图上有一个采用 Record 而不是 Result 的替代版本:#4009 。同时,您必须使用原始 Result 引用,或使用 DSLContext.newResult(...) 之一创建新实例。方法。

关于java - jOOQ支持查询本地结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28209631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com