gpt4 book ai didi

java - Hibernate的 `setFirstResult`不工作

转载 作者:行者123 更新时间:2023-12-01 18:11:41 25 4
gpt4 key购买 nike

我有一个类,它返回查询中的所有实体,受最大值和最小值限制:

@SuppressWarnings("unchecked")
public static <E> List<E> getAll(Class<E> klass, Integer startAt) {
startAt = (startAt == null) ? 0 : startAt;
int endAt = startAt + Constant.API_MAX_RESULTS;
return (List<E>) HibernateUtil.getCurrentSession()
.createCriteria(klass)
.setFirstResult(startAt)
.setMaxResults(endAt)
.list();
}

其中Constant.API_MAX_RESULTS100。例如,如果我想要 100-199 个基因,我会调用:

getAll(Gene.class, 100);

如果我打印 startAtendAt,我正确地看到 100200,但我实际得到的是返回的是0-199个包含基因。

当我配置 Hibernate 以显示 SQL 时,我看到以下内容:

select this_.id as id8_0_, ... from gene this_ limit ?, ?

应该在limit上设置值吗?为什么下限不起作用?

最佳答案

Hibernate 的 show_sql 显示带有参数占位符的 SQL,因此它不显示实际值。 (尽管它是在 TRACE 级别记录的)。

你的问题是你不明白setMaxResults()的作用,它设置了最大值。获取的项目数。

关于java - Hibernate的 `setFirstResult`不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32504992/

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