使用springs getHibernateTemplate,如何获取用户列表并限制结果集?
问题内容:
我有一个Spring MVC应用程序,如何返回用户列表并限制结果?
我的UserDao看起来像:
public List<User> getUsers(int limit) {
return super.getHibernateTemplate()????
}
问题答案:
我假设您这样做是出于分页的目的。
您可以创建查询并使用setMaxResults和setFirstResult:
public List<User> getUsers(int limit)
{
Query q = getHibernateTemplate().getSession().createQuery("from User");
q.setFirstResult(0); // modify this to adjust paging
q.setMaxResults(limit);
return (List<User>) q.list();
}
或者,使用HibernateCallback(这可能是最好的方法,尽管比较麻烦):
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query q = session.createQuery("from User");
q.setMaxResults(limit);
return q.list();
}
});
另外,它将为您处理异常翻译。