现在我有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-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();这个找不到分页的位置了,因为是多张表的数据进行分页,不是一张表的数据进行分页。
我该怎么做?