现在我有12张表,分别是table01-table12,由于12张表的结构一样,同一映射到同一个对象TableBean,在hbm.xml中,写成如下格式:
<hibernate-mapping>
<class name="com.javaeyes.bean.TableBean" table="table_01" entity-name="Table01"/>
<class name="com.javaeyes.bean.TableBean" table="table_02" entity-name="Table02"/>
<class name="com.javaeyes.bean.TableBean" table="table_03" entity-name="Table03"/>
<class name="com.javaeyes.bean.TableBean" table="table_04" entity-name="Table04"/>
<class name="com.javaeyes.bean.TableBean" table="table_05" entity-name="Table05"/>
..........
<class name="com.javaeyes.bean.TableBean" table="table_11" entity-name="Table11"/>
<class name="com.javaeyes.bean.TableBean" table="table_12" entity-name="Table12"/>
每个表使用不同的entity-name来区分,统一都映射到TableBean这个class,
现在我需要从这12张表中查询查出指定条件的数据集,我使用的是QBC查询,定义了分页函数public List findByCriteria(List<Criteria> cs, int rowStart, int rowEnd),传Criteria的list进去进行分页处理查询。
分页函数中,我使用的是TableBean的class,没有用entity-name来查询(网上多是用entity-name来查询,解决不了我的问题)
public List findByCriteria(List<Criteria> cs, int rowStart, int rowEnd)
{
Criteria criteria = getSession().createCriteria(TableBean.getClass());
......//拼criteria,组成查询条件
criteria.setFirstResult(rowStart);
criteria.setMaxResults(rowEnd - rowStart + 1);
list = criteria.list();
return list;
}
现在程序执行时,总的数据集的大小可以取到,第一页也可以取到,但是第二页就取不到了,list返回为空,我debug进去看分页的数据都对,rowEnd,rowStart都是正确的数据,感觉是list = criteria.list();这个找不到分页的位置了,因为是多张表的数据进行分页,不是一张表的数据进行分页。
我该怎么做?
分享到:
相关推荐
总结,"Hibernate 多表连接分页查询示范项目"是一个实用的示例,它展示了如何在实际应用中利用 Hibernate Criteria API 实现复杂查询和分页,对于学习和掌握 Hibernate 的高级特性和数据库操作技巧非常有帮助。...
3. **关联映射**:集合映射通常涉及到两个实体之间的关联,如一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)和多对多(@ManyToMany)关系。 4. **集合属性映射**:在实体类中,集合属性需要使用...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发人员将Java对象模型映射到数据库表,并在对象和数据库之间进行转换。在实际开发过程中,我们经常会遇到需要从多个表中获取数据的情况,这时就需要用到连...
Hibernate作为Java领域中的一款强大持久化框架,其核心功能之一就是对象关系映射(ORM),使得开发者可以方便地在Java对象与数据库表之间进行交互。其中,集合映射是Hibernate中非常关键的概念,它允许我们将数据库...
其次,Hibernate是一个对象关系映射(ORM)框架,它可以将Java对象和数据库表之间的映射关系进行管理,简化了数据库操作。在分页场景中,Hibernate主要负责从数据库中查询数据并进行分页处理。通过Criteria、HQL...
Hibernate是Java环境下一个开放源代码的对象关系映射(ORM)框架,它允许开发者将Java对象映射到关系型数据库中的表,以及从数据库表中映射到Java对象。分页功能则是为了提高应用程序性能而设计的一种技术,尤其是在...
例如,多个订单(Order)可以关联到同一个客户(Customer)。 4. **多对多(Many-to-Many)关联**:一个实体可以关联多个其他实体,反之亦然。在数据库中,这通常通过中间表(join table)来实现,中间表包含双方的...
在这个项目中,"struts+hibernate做的分页显示"主要是利用这两者来实现数据的分页展示,提升用户体验,降低服务器压力。 首先,Struts是一个基于MVC设计模式的Java Web框架,它简化了开发过程,提供了处理HTTP请求...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本教程将详细讲解如何使用Hibernate实现分页功能,这对于处理大量数据的Web...
假设有一个抽象的`Animal`类,以及它的两个子类`Dog`和`Cat`,在Hibernate映射文件中可能会这样配置: ```xml ``` 这样,`Animal`类的`name`属性会被映射到`ANIMAL`表,`Dog`和`Cat`的...
在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别专注于应用的依赖注入(DI)和对象关系映射(ORM)。结合使用,它们可以构建出高效、可维护的Java Web应用程序。本文将深入探讨如何利用Spring和...
Hibernate是一个面向Java环境的对象关系映射(ORM)框架,它提供了对数据库操作的高级抽象,使得开发者能够以面向对象的方式来操作数据库。通过Hibernate,开发者可以将实体对象与数据库表进行映射,从而极大地提高...
Hibernate是一个开源的JPA(Java Persistence API)实现,它允许开发者使用面向对象的方式来操作数据库,而无需编写大量的SQL代码。通过ORM映射,Java对象可以直接与数据库表进行对应,这大大提高了开发效率和代码的...
Hibernate是一个强大的ORM(Object-Relational Mapping)框架,它允许开发者将Java对象映射到关系数据库表,消除了Java与SQL之间的直接交互,降低了数据访问层的复杂性。在Spring框架中,我们可以利用Spring Data ...
而Hibernate则是一个强大的对象关系映射(ORM)工具,用于简化数据库操作,将Java对象与数据库表之间的交互变得更加简单。 在分页实现中,视图(View)部分通常负责显示数据和提供导航链接。在示例的`select.jsp`中...
接下来,Hibernate作为ORM(对象关系映射)工具,连接了Java对象和数据库表。它允许开发者使用面向对象的方式操作数据库,简化了数据库操作。在分页查询中,Hibernate提供了Criteria、HQL(Hibernate Query Language...
分页是将大量数据分成多个小部分,每次只加载一部分数据到用户界面,以减少内存占用和提高页面响应速度。在Web应用中,通常需要提供页码或跳转链接让用户在不同页之间切换。分页的核心参数包括当前页、每页显示的...
在Java的Web开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它使得开发者可以使用面向对象的方式来操作数据库,极大地提高了开发效率。而当我们处理大量数据时,通常需要实现分页功能来提高用户体验,...
**Hibernate** 是一个对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互。通过Hibernate,开发者可以将数据库操作转化为对Java对象的操作,避免了编写大量的SQL语句。此外,Hibernate还支持缓存机制,...
1. Hibernate:Hibernate是一个优秀的对象关系映射(ORM)框架,它允许开发者在Java应用中使用面向对象的方式来操作数据库。它通过提供一个映射机制,将Java类与数据库表进行对应,简化了数据库操作,减少了SQL的...