首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2012-11-01 
使用hql 语句进行分页查询操作?/**???? * 使用hql 语句进行分页查询操作???? * @param hql 需要查询的hql

使用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;
??? }
???????
}

热点排行