2014-09-18 91 views
1

我正在使用Hibernate全文搜索。我目前使用:Hibernate全文搜索分頁

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-search</artifactId> 
    <version>4.5.1.Final</version> 
</dependency> 

我能夠搜索所有權利。我的問題是:我如何分頁我的結果?有什麼方法可以先得到50個結果,然後在接下來的50個結果請求下一頁時撥打電話?

我想到的一種方法是簡單地獲取最大ID,然後從Max + 1位置開始下一個搜索,假設ID是以自動增量順序生成的。但我認爲必須有更優雅的方法。

回答

5

來自Hibernate search-query docs的分頁。

org.hibernate.Query fullTextQuery = 
fullTextSession.createFullTextQuery(luceneQuery, Customer.class); 
fullTextQuery.setFirstResult(15); //start from the 15th element 
fullTextQuery.setMaxResults(10); //return 10 elements 
0

您可以將列表結果從列表轉換爲頁面示例:如果您在列表用戶中獲得搜索。你可以這樣轉換:

NBPAGE: pages number you want 
Pageable page=new PageRequest(0,NBPAGE,Sort.Direction.DESC,"date"); 
Page<Annonce> PageList= new PageImpl<Annonce>(users ,page,users.size());