gpt4 book ai didi

java - 为什么 getFirstResult() 和 getMaxResults() 不从数据库返回第 x 到 y 行的 block ?

转载 作者:行者123 更新时间:2023-11-29 17:47:17 24 4
gpt4 key购买 nike

在我的数据库中有如下行

article  lang     timestamp
0 English 2018-04-07 03:34:49
1 English 2018-04-07 03:34:50
2 English 2018-04-07 03:34:51
3 English 2018-04-07 03:34:52
4 English 2018-04-07 03:34:53
5 English 2018-04-07 03:34:54
6 English 2018-04-07 03:34:55
7 English 2018-04-07 03:34:56
8 English 2018-04-07 03:34:57
9 English 2018-04-07 03:34:58
10 English 2018-04-07 03:34:59

我的查询如下

Query query = session.createQuery("select a from Article a where a.lang=:lang ORDER BY a.timeStamp ASC");
query.setParameter("lang", lang);
query.setFirstResult(startingRow);
query.setMaxResults(endingRow);
List<Article> result = (List<Article>) query.list();
if(result.listIterator().hasNext()) {
return result;
}

当我将startingRow发送为0并将endingRow发送为4时,我希望结果为

0 
1
2
3

当我发送startingRow为5,endingRow为9时,我希望结果为

4 
5
6
7

但它并没有像我预期的那样到来。它以随意的方式返回重复的记录。我在这里做错了什么?

我的要求是,我想要按我正在寻找的顺序获得结果(记录)。例如,如果我需要记录 55 到 65,那么我需要这些记录。

PS:我尝试使用query.setFetchSize(5),但它一次性返回所有记录。我做了一些研究,发现如果驱动程序不支持 setFetchSize() ,它将无法工作。

最佳答案

好的。我就是这样解决的。

Hibernate 可以让你解决这个问题

query.setFirstResult(startingRow).setMaxResults(5);

其中 startingRow 是提到的第 x 行,它将从该行返回接下来的 n(此处为 5)条记录。

关于java - 为什么 getFirstResult() 和 getMaxResults() 不从数据库返回第 x 到 y 行的 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49703735/

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