gpt4 book ai didi

java - 在jooq的seek api中使用子查询

转载 作者:行者123 更新时间:2023-11-30 06:45:54 29 4
gpt4 key购买 nike

我正在评估在我们的解决方案中使用 JOOQ,其中我们使用 REST API 公开数据,并检查以下功能是否可以使用 jooq 的 seekAfterseekBefore API。

假设我有一张像

这样的 table
CREATE TABLE Test (
Id Int NOT NULL PRIMARY KEY,
Sid varchar(34) NOT NULL,
....
)

我们希望使用 Id 字段进行分页,但不想将其暴露给用户。作为响应的一部分,我们将下一个和上一个分页参数作为 token 分发。

目前我们正在构建类似的查询

SELECT ... FROM Test WHERE Id > (SELECT Id FROM Test WHERE Sid=?) LIMIT 10;

是否可以给它一个表达式到jooq的seek api而不是文字值?

最佳答案

你可以这样做:

// Assuming this static import:
import static org.jooq.impl.DSL.*;

DSL.using(configuration)
.select()
.from(TEST)
.orderBy(TEST.ID)
.seekAfter(field(select(TEST.ID).from(TEST).where(TEST.SID.eq(sid))))
.limit(10)
.fetch();

本质上,这是包装 Select<? extends Record1<T>>输入 Field<T>输入 DSL.field(Select)

关于java - 在jooq的seek api中使用子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43689287/

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