【发布时间】:2016-09-09 09:56:39
【问题描述】:
我正在开发一个 Spring-MVC 应用程序,其中我有一个使用 Criteria 编写的搜索功能。对于分页搜索,我从前端获取 firstResult 和 fetchSize 作为参数。不幸的是,当仅询问 20 行时,Criteria 忽略了它们并返回了一个巨大的列表(大约 1000 行)。出了什么问题?
代码:
System.out.println("Fetch size is "+fetchSize);
System.out.println("First result is "+firstResult);
Criteria andCriteria = session.createCriteria(Host.class);
Conjunction and = Restrictions.conjunction();
if((studentSearchHistory.getCity()!=null) && (!(studentSearchHistory.getCity().isEmpty()))) {
and.add(Restrictions.ilike("city", studentSearchHistory.getCity()));
}
//Other search conditions
andCriteria.setFetchSize(fetchSize);
andCriteria.setFirstResult(firstResult);
andCriteria.add(and);
hostList.addAll(andCriteria.list());
if(hostList != null){
System.out.println("Host list size is "+hostList.size());
}
输出:
Fetch size is 10
First result is 0
Host list size is 1003
我做错了什么?谢谢你。
【问题讨论】:
-
试试
criteria.setMaxResults(n)
标签: java spring hibernate criteria hibernate-criteria