- 浏览: 1633168 次
- 性别:
- 来自: 长春
文章分类
- 全部博客 (309)
- ext (19)
- web (13)
- PHP (19)
- 互联网新闻 (3)
- oracle (3)
- Mootools (1)
- FLEX (3)
- 人在职场 (2)
- hibernate (24)
- spring2 (1)
- J2SE (24)
- WEB_UI (14)
- 其它 (11)
- Log4J (1)
- iText (10)
- SQL (11)
- 设计模式 (3)
- lucene (6)
- 开源项目 (2)
- javascript (20)
- 软件&破解补丁 (48)
- Quartz (2)
- 解决方案 (1)
- 工作存档 (2)
- JAVA对文件操作 (2)
- C&C#&VC (1)
- struts2 (3)
- 版本控制 (2)
- 软考基础 (23)
- JBPM (2)
- velocity (4)
- javamail (3)
- HttpClient (9)
- 虚拟化技术 (2)
- 报表 (3)
- ibatis (5)
- Spring (4)
- 信用卡 (0)
- 芒果钱包 (0)
- 养卡 (0)
最新评论
-
a601962168:
...
通过JAVA与串口(RS232)通信实例 -
olive009:
...
Adobe Acrobat 9 Pro & Pro Extended 中文版/英文版 下载及破解补丁 -
overshit:
api更新了,一加filter就Callback filter ...
深入浅出CGlib-打造无入侵的类代理 -
u010778233:
写得很不错,已经用起来了,谢谢
将jdbc结果集转换成对象列表 -
924060929:
我想找就是要这个功能!!!!!!!!
velocity基础教程--2自定义ResourceLoader实现字符模板
bug源
这个代码第一次运行的时候没问题。
等你去拿第2页的时候,就提示说出现NullPointer。 发现是((Integer) criteria.setProjection(Projections.rowCount()).uniqueResult())为Null, 也就是根本就拿不到表总数。
为此我思考了好一阵子。
后来看了别人的代码才焕然大悟。
看第2个代码:
有些问题总结一下
1、criteria.setProjection(null);
取得了总数后,为了能够再次取得对象列表。
2、detachedCriteria.setResultTransformer(CriteriaSpecification.ROOT_ENTITY);
当hibernate采用关联的时候不使用这个返回的是个对象数组,加上这个返回的是当前列表的对象。
return (PageSupport) getHibernateTemplate().execute( new HibernateCallback() ...{ public Object doInHibernate(Session session) throws HibernateException ...{ Criteria criteria = detachedCriteria .getExecutableCriteria(session); logger.debug("SQL: " + Projections.rowCount()); //执行查询 int totalCount = ((Integer) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue(); List items = criteria.setFirstResult(startIndex) .setMaxResults(pageSize).list(); PageSupport ps = new PageSupport(items, totalCount, pageSize, startIndex); return ps; } }, true);
这个代码第一次运行的时候没问题。
等你去拿第2页的时候,就提示说出现NullPointer。 发现是((Integer) criteria.setProjection(Projections.rowCount()).uniqueResult())为Null, 也就是根本就拿不到表总数。
为此我思考了好一阵子。
后来看了别人的代码才焕然大悟。
看第2个代码:
return (PageSupport) getHibernateTemplate().execute( new HibernateCallback() ...{ public Object doInHibernate(Session session) throws HibernateException ...{ Criteria criteria = detachedCriteria .getExecutableCriteria(session); CriteriaImpl impl = (CriteriaImpl) criteria; //先把Projection和OrderBy条件取出来,清空两者来执行Count操作 Projection projection = impl.getProjection(); logger.debug("SQL: " + Projections.rowCount()); //执行查询 int totalCount = ((Integer) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue(); //将之前的Projection和OrderBy条件重新设回去 criteria.setProjection(projection); if (projection == null) ...{ criteria.setResultTransformer(CriteriaSpecification.ROOT_ENTITY); } List items = criteria.setFirstResult(startIndex) .setMaxResults(pageSize).list(); PageSupport ps = new PageSupport(items, totalCount, pageSize, startIndex); return ps; } }, true);
有些问题总结一下
1、criteria.setProjection(null);
取得了总数后,为了能够再次取得对象列表。
2、detachedCriteria.setResultTransformer(CriteriaSpecification.ROOT_ENTITY);
当hibernate采用关联的时候不使用这个返回的是个对象数组,加上这个返回的是当前列表的对象。
发表评论
-
Hibernate + EhCache 实现数据缓存的处理
2009-10-16 15:35 2643大家都了解对于信息的展示应用中解决对数据库的频繁访问主要有两种 ... -
基于hibernate的泛型Dao框架
2009-06-10 16:05 16528这个东西是一年前弄的 ... -
hibernate的session.flush
2008-07-30 21:32 1670测试session.flush 1、session在什么情况 ... -
hibernate在单端关联上的lazy策略
2008-07-30 21:30 1437hibernate在单端关联上的lazy策略,<one- ... -
hibernate在集合上的lazy策略
2008-07-30 21:29 1332hibernate在集合上的lazy策略,可以取值true/f ... -
hibernate的lazy策略forClass
2008-07-30 21:26 1345lazy策略可以用在: * <class>标签上 ... -
hibernate多对多关联映射(双项关联)
2008-07-30 21:24 1505hibernate多对多关联映射(双项关联)user<- ... -
基本映射说明
2008-07-28 22:28 1453基本映射 类-->数据库表 普通属性-->表字 ... -
hibernate多对多关联映射(单项关联)
2008-07-28 22:27 1987hibernate多对多关联映射(单项关联)user---&g ... -
hibernate一对多关联映射(双向关联)
2008-07-28 22:25 4834hibernate一对多关联映射(双向关联)Classes&l ... -
hibernate一对多关联映射(单向关联)
2008-07-28 22:23 2159hibernate一对多关联映射(单向关联)Classes-- ... -
hibernate一对一唯一外键关联映射(双向关联)
2008-07-28 22:21 3971hibernate一对一唯一外键关联映射(双向关联)Perso ... -
hibernate一对一唯一外键关联映射(单项关联)
2008-07-28 22:19 2770hibernate一对一唯一外键关联映射(单项关联)Perso ... -
hibernate一对一主键关联映射(双项关联)
2008-07-28 22:17 1716hibernate一对一主键关联映射(双项关联)Person& ... -
hibernate一对一主键关联映射(单项关联)
2008-07-28 22:16 2777hibernate一对一主键关联映射(单项关联)Person- ... -
hibernate多对一关联映射
2008-07-28 22:14 1361关联映射的本质:将关联关系映射到数据库,关联关系在对象模型域中 ... -
测试实体对象的生命周期
2008-07-28 22:12 1366测试实体对象的生命周期 junit简介: *编写测试类xx ... -
hibernate_simple
2008-07-28 22:09 1420第一个hibernate项目 1.新建一个java项目 2 ... -
hibernate存入mysql乱码
2008-07-22 06:45 2820mysql数据库GBK,数据库中的表GBK,hibernate ... -
通过hibernate去调用存储过程
2008-03-25 20:53 13920之前一直误以为用了hibernate之后就不可以使用存储过程了 ...
相关推荐
Hibernate分页查询小结
标题与描述均提到了“Hibernate分页的设计和编码”,这表明文章主要聚焦于如何在Hibernate框架中实现数据分页功能。下面将详细解析这一主题的关键知识点。 ### Hibernate分页概念 Hibernate是Java环境下一个开放源...
### Hibernate 分页查询原理详解 #### 一、引言 在大数据量处理场景下,分页查询是提高数据检索效率的重要手段之一。Hibernate作为Java领域内最常用的持久层框架之一,其内置的分页功能非常实用且高效。本文将深入...
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Struts2与Hibernate框架结合下实现分页功能。接下来将详细解析Struts2与Hibernate如何协作完成这一任务。 ### Struts2与Hibernate...
FirstResult表示从结果集的第几个元素开始获取,MaxResults则限制返回的最大记录数。 二、使用Criteria API进行分页 1. 创建Criteria对象:`Criteria criteria = session.createCriteria(entityClass);` 2. 设置...
项目通过 Hibernate Criteria API 展示了如何进行多表连接查询,并结合分页功能,有效地获取和展示相关数据。项目源码会详细展示如何创建 Criteria 查询,如何设置 JOIN 条件,以及如何实现分页。 **具体步骤** 1....
此外,优化查询,避免N+1查询问题,合理设计实体关系,都能有效提升Hibernate分页查询的效率。 总结起来,Hibernate的分页查询和数据库连接管理是其强大功能的重要组成部分。正确理解和使用这些特性,能够帮助...
在分页场景下,一个Action类可能会包含获取当前页数、每页显示条数以及执行查询等方法。当用户点击页面链接时,Struts会根据配置的Action Mapping将请求转发到对应的Action。 接下来是Hibernate的使用。在数据库...
在MyEclipse中运行这些代码,你需要确保已经正确配置了Hibernate项目,包括Hibernate的jar包、数据库连接配置(hibernate.cfg.xml)、实体类的映射文件(.hbm.xml),并且已经创建了对应的数据库表。 在实际应用中...
在`MemberDao`接口中,我们定义了两个关键的方法,一个是用于分页查询,另一个是获取所有记录的数量。这两个方法分别如下: 1. `queryForPage` 方法接受三个参数:HQL(Hibernate Query Language)查询语句、开始...
通过设置页码和每页大小,可以获取到分页数据。 ```java Pageable pageable = PageRequest.of(pageNumber, pageSize); List<MyEntity> entities = myEntityRepository.findAll(pageable); ``` 5. **分页查询**: 在...
hibernate分页(无排序,搜索,仅仅分页显示),服务器端分页在datatables上展现,有关 datatables的知识请关注它的官网http://www.datatables.net/,datatables的功能很 全面。 2,建表的sql--studentinfo和插入...
分页查询可能涉及到`setFirstResult()`和`setMaxResults()`这两个Hibernate的Query方法,它们分别设置查询的起始位置和最大返回记录数。 4. **创建Action类**:在Struts框架中,Action类是处理用户请求的核心,它...
3. 在JSP中展示数据和分页链接,利用请求范围内的属性获取分页信息。 4. 使用JSTL标签处理条件判断和导航链接。 5. 更新或删除操作同样需要在Action中处理,并确保分页状态不会受到影响。 这样的分页实现保证了数据...
【标题】:“Hibernate实现分页” 在Web应用程序开发中,数据分页是一种常见的需求,它有助于提高用户体验,尤其是在处理大量数据时。Hibernate作为一款流行的Java持久化框架,提供了多种方式来实现分页查询。本...
java 实现的一个简单的hibernate分页类 可以设置,从某一条开始取、显示的条数 不依赖struts spring
通常,我们会创建一个PageBean类来封装分页信息,包括当前页、总页数、每页记录数、总记录数等。在这个例子中,PageBean没有给出详细内容,但一般会包含如`setCurrentPage(int currentPage)`、`setTotalPages(int ...
根据提供的标题、描述以及部分内文,我们可以梳理出关于如何使用Struts2与Hibernate实现分页功能的关键知识点。 ### Struts2与Hibernate简介 - **Struts2**:这是一个基于MVC架构的开源Web框架,它能帮助开发者...
为了解决这个问题,我们可以利用JDBC的SQL分页来直接在数据库层面进行分页,从而减少内存消耗。 在给定的"SuperHibernateEntityDao.java"文件中,可能包含了一个自定义的DAO基类,该类扩展了Hibernate的通用DAO操作...
"hibernate 通用分页"是Hibernate框架中一个重要的实用功能,主要用于处理大数据量的查询场景,避免一次性加载过多数据导致内存压力。在这个组件中,`Pagehelp.java`、`Page.java`和`tag.tld`是实现分页的关键文件。...