簡體   English   中英

Hibernate的`setFirstResult`不起作用

[英]Hibernate's `setFirstResult` not working

我有一個可返回查詢中所有實體的類,受最大和最小限制:

@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()作用,它設置了最大值。 獲取的項目數。

.setMaxResults是要返回的最大記錄數,因此我相信您希望setMaxResults為100。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM