读书人

应用hql 语句进行分页查询操作

发布时间: 2012-11-01 11:11:31 作者: rapoo

使用hql 语句进行分页查询操作

?/**
???? * 使用hql 语句进行分页查询操作
???? * @param hql 需要查询的hql语句
???? * @param offset 第一条记录索引
???? * @param pageSize 每页需要显示的记录数
???? * @return 当前页的所有记录
???? */
??? @SuppressWarnings("unchecked")
??? public List findByPage(final String hql,
???????? final int offset, final int pageSize)
??? {

??????? List list = getHibernateTemplate().executeFind(new HibernateCallback()
??????????? {
??????????????? public Object doInHibernate(Session session)
??????????????????? throws HibernateException, SQLException
??????????????? {
??????????????????? List result = session.createQuery(hql)
???????????????????????????????????????? .setFirstResult(offset)
???????????????????????????????????????? .setMaxResults(pageSize)
???????????????????????????????????????? .list();
??????????????????? return result;
??????????????? }
??????????? });
??????? return list;
??? }


??? /**
???? * 使用hql 语句进行分页查询操作
???? * @param hql 需要查询的hql语句
???? * @param value 如果hql有一个参数需要传入,value就是传入的参数
???? * @param offset 第一条记录索引
???? * @param pageSize 每页需要显示的记录数
???? * @return 当前页的所有记录
???? */
??? @SuppressWarnings("unchecked")
??? public List findByPage(final String hql , final Object value ,
???????? final int offset, final int pageSize)
??? {

??????? List list = getHibernateTemplate().executeFind(new HibernateCallback()
??????????? {
??????????????? public Object doInHibernate(Session session)
??????????????????? throws HibernateException, SQLException
??????????????? {
??????????????????? List result = session.createQuery(hql)
???????????????????????????????????????? .setParameter(0, value)
???????????????????????????????????????? .setFirstResult(offset)
???????????????????????????????????????? .setMaxResults(pageSize)
???????????????????????????????????????? .list();
??????????????????? return result;
??????????????? }
??????????? });
??????? return list;
??? }


??? /**
???? * 使用hql 语句进行分页查询操作
???? * @param hql 需要查询的hql语句
???? * @param values 如果hql有多个个参数需要传入,values就是传入的参数数组
???? * @param offset 第一条记录索引
???? * @param pageSize 每页需要显示的记录数
???? * @return 当前页的所有记录
???? */
??? @SuppressWarnings("unchecked")
??? public List findByPage(final String hql, final Object[] values,
???????? final int offset, final int pageSize)
??? {

??????? List list = getHibernateTemplate().executeFind(new HibernateCallback()
??????????? {
??????????????? public Object doInHibernate(Session session)
??????????????????? throws HibernateException, SQLException
??????????????? {
??????????????????? Query query = session.createQuery(hql);
??????????????????? for (int i = 0 ; i < values.length ; i++)
??????????????????? {
??????????????????????? query.setParameter( i, values[i]);
??????????????????? }
??????????????????? List result = query.setFirstResult(offset)
?????????????????????????????????????? .setMaxResults(pageSize)
?????????????????????????????????????? .list();
??????????????????? return result;
??????????????? }
??????????? });
??????? return list;
??? }
???????
}

读书人网 >软件架构设计

热点推荐