java - 使用 springs getHibernateTemplate,如何获取用户列表并限制结果集?

标签 java hibernate spring spring-mvc

我有一个 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();
        }
    });

它将另外为您处理异常翻译。

关于java - 使用 springs getHibernateTemplate,如何获取用户列表并限制结果集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8130964/

相关文章:

java - header 位置不重定向

java - Spring Boot 多个文件上传多个对象

java - 关于Java I/O类的问题

spring - 服务器在 eclipse 中正确启动,但在 Intellij 中不正确

hibernate - @Enumerated(EnumType.STRING) 因 @AttributeOverride 丢失

java - 将 Boolean 更改为 boolean 会在 MapStruct 中引发 noSuchMethodError

java - onSave()(对于使用 Hibernate/Spring Data Repositories 保存的任何实体)

java - 具有生成 com.sun.jersey.spi.inject.Errors 的复合(两部分)主键的 Glassfish/PostgreSQL 表

java - 在 Android 平板电脑上调用 getSimCountryIso() 时会发生什么?

java - Hibernate二级缓存问题