- 注册时间
- 2013-10-29
- 最后登录
- 2013-11-8
- 阅读权限
- 10
- 积分
- 48
- 精华
- 0
- 帖子
- 14
|
本帖最后由 wangwangxs 于 2013-11-6 20:45 编辑
哪位能帮我看一下这个代码为什么不能分页??
@SuppressWarnings("unchecked")
public HashMap<String,Object> SearchAllPage(String object,String property,String key,int index, int size, String sortField, String sortOrder)
{
List<Object> list = null;
if(key == null) key = "";
String sql = "select ob from "+ object
+ " ob"+" where ob."+property+" like '%" + key + "%'";
if (StringUtil.isNullOrEmpty(sortField) == false)
{
if ("desc".equals(sortOrder) == false) sortOrder = "asc";
sql += " order by " + sortField + " " + sortOrder;
}
else
{
sql += " order by id desc";
}
int start = index * size, end = start + size;
try {
Query query = entityManager.createQuery(sql);
query.setFirstResult(start);
query.setMaxResults(end);
list = query.getResultList();
} catch (RuntimeException re) {
throw re;
}
/* ArrayList<Object> data = new ArrayList<Object>();*/
/* for (int i = 0, l = list.size(); i < l; i++)
{
if (start <= i && i < end)
{
data.add(list.get(i));
}
}*/
HashMap<String,Object> result = new HashMap<String,Object>();
result.put("data", list);
result.put("total", list.size());
return result;
}
该问题已解决
出现问题的地方:
query.setFirstResult(start);
query.setMaxResults(end);
list = query.getResultList();
这种写法是查出每页的数据
result.put("total", list.size());
这种写法只是将查出来的每页数据的大小存到 result 中,而不是所有的记录,所以达不到分页的效果。
|
|