gpt4 book ai didi

java - Jooq - 使用 UpdatableRecord 对 select 的结果进行排序

转载 作者:行者123 更新时间:2023-11-30 07:08:19 25 4
gpt4 key购买 nike

如何使用 UpdatableRecord 执行选择并对查询结果进行排序?

查看手册,例如,

create.fetch(BOOK, BOOK.PUBLISHED_IN.equal(1948))

如何添加 order by 子句?

我使用的是 Jooq 3.6.4

感谢您的帮助

更新:

我发现我可以使用,例如:

    for(UtenteRecord utenteRecord : 
create.selectFrom(UTENTE).orderBy(UTENTE.LOGIN)){
}

但无论有没有 fetch() 最后它似乎都可以工作,为什么?

最佳答案

在数据库中排序

只需写出 SQL 查询并使用 selectFrom() 返回 UpdatableRecord:

DSL.using(configuration)
.selectFrom(UTENTE)
.orderBy(UTENTE.LOGIN)
.fetch();

旁注:为什么 foreach 循环中不需要 fetch()

您已经注意到,您不需要在 foreach 循环中编写 fetch():

for (UtenteRecord record : DSL.using(configuration)
.selectFrom(UTENTE)
.orderBy(UTENTE.LOGIN)) {
...
}

这是因为ResultQuery延伸Iterableforeach loop来电 Iterable.iterator() ,jOOQ将执行查询并返回Result.iterator

I've just written a blog post to illustrate this more in detail

使用客户端排序

请注意,您始终可以在客户端中对结果进行排序,尽管可能不建议这样做,因为您应该将尽可能多的操作推送到数据库中以帮助优化器:

DSL.using(configuration)
.fetch(UTENTE, somePredicate)
.sortAsc(UTENTE.LOGIN);

关于java - Jooq - 使用 UpdatableRecord 对 select 的结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39677465/

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