博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate 分页
阅读量:7008 次
发布时间:2019-06-28

本文共 1877 字,大约阅读时间需要 6 分钟。

hot3.png

博客分类:

 

 

 /**

     * 使用hql 语句进行分页查询操作
     * @param hql 需要查询的hql语句
     * 
@param offset 第一条记录索引
     * 
@param pageSize 每页需要显示的记录数
     * 
 当前页的所有记录
     
*/
    @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 每页需要显示的记录数
     * 
 当前页的所有记录
     
*/
    @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 每页需要显示的记录数
     * 
 当前页的所有记录
     
*/
    @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;
    }
        
}

转载于:https://my.oschina.net/cheeryzxh007/blog/226434

你可能感兴趣的文章
springboot-国际化
查看>>
C11中替代gets()的函数
查看>>
[转]水晶报表自动补空行及格线(无分组版)
查看>>
PHP里用户密码的回复和管理
查看>>
jqprint导入jqgrid表格时,内容溢出的原因以及解决方法
查看>>
IOS self.使用
查看>>
POJ1151 Atlantis
查看>>
UltraEdit编辑器使用心得之正则表达式篇
查看>>
dnspod 批量添加记录
查看>>
ZCMU训练赛-H(模拟)
查看>>
Codeforces Round #449 (Div. 2) A. Scarborough Fair【多次区间修改字符串】
查看>>
CCCC L1-039. 古风排版【图形输出/循环控制行列/模拟/细节】
查看>>
POJ 1182 食物链 【带权并查集/补集法】
查看>>
V字形
查看>>
Flask学习笔记(3)-数据库迁移
查看>>
Hbase常用操作
查看>>
一行命令学会全基因组关联分析(GWAS)的meta分析
查看>>
第二阶段冲刺——six
查看>>
模块封装代码
查看>>
《Machine Learning》(第一章)序章
查看>>