gpt4 book ai didi

java - 如何使用 javax.persistence 获取从给定 id 开始并受给定限制限制的所有行?

转载 作者:行者123 更新时间:2023-11-29 21:38:29 26 4
gpt4 key购买 nike

当我有 20 行时 (id = 5.......id=25)我想获取从 id=4 开始的前 3 行(即第 5 行、第 6 行和第 7 行)

我想我可以使用:

  String queryStr = "FROM MyQueue x";
Query q = DbHandler.createQuery(queryStr);
q.setFirstResult(idToStart);
q.setMaxResults(maxRecords);

但是setFirstResult计算的是行数而不是id。

另一件事是使用 "WHERE id > 4" 来完成它 - 但我如何保证它将获取所需的行,而不是其他一些行,例如第 17 行...

最佳答案

在 SQL 中,您可以使用 ORDER BY 来保证这一点:

SELECT x.*
FROM MyQueue x
WHERE x.id >= 4
ORDER BY x.id
LIMIT 3;

如果您想保证按 id 值获取接下来的三行,则 ORDER BY 非常重要;否则,结果集中的顺序是不确定的(例如,它可能看起来有效,然后停止工作)。您只有 20 行,因此性能不是问题。如果您的行数较多,那么您可能需要在 id 上建立索引来优化性能。

关于java - 如何使用 javax.persistence 获取从给定 id 开始并受给定限制限制的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34725443/

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