各位大神,您们好!小弟最近才开始学习hibernate,hibernate多表查询返回object的数组,有没有办法让它返回以主表为根对象的对象集合,根对象可以使用get子对象的方法获取到其它的从表映射的对象。fetch="join"
<hibernate-mapping>
<class name="com.zdsoft.entity.Sysuser" table="sysuser" catalog="ssh">
<id name="userId" type="java.lang.Integer">
<column name="userId" />
<generator class="identity" />
</id>
<many-to-one name="sysemp" class="com.zdsoft.entity.Sysemp" unique="true" fetch="join">
<column name="empId" />
</many-to-one>
<property name="userName" type="string">
<column name="UserName" length="20" />
</property>
<property name="password" type="string">
<column name="Password" length="50" />
</property>
<property name="status" type="java.lang.Integer">
<column name="Status" />
</property>
</class>
</hibernate-mapping>
/**
* Hibernate分页
*
* @param pageIndex
* @param pageSize
* @param clazz
* @return
*/
@SuppressWarnings("rawtypes")
public Pager getPageObjects(Integer pageIndex, Integer pageSize, Class clazz) {
DetachedCriteria criteria = DetachedCriteria.forClass(clazz).setProjection(Projections.rowCount());
Pager page = new Pager();
page.setCount(Integer.parseInt(this.getHibernateTemplate().findByCriteria(criteria).get(0).toString()));
if (page.getCount() % pageSize == 0) {
page.setPageCount(page.getCount() / pageSize);
} else {
page.setPageCount((page.getCount() / pageSize) + 1);
}
criteria.setProjection(null);
// criteria.setResultTransformer(DetachedCriteria.ALIAS_TO_ENTITY_MAP);//以map的形式返回数据
List list = this.getHibernateTemplate().findByCriteria(criteria).subList((pageIndex - 1) * pageSize, ((pageIndex * pageSize) > page.getCount() ? page.getCount() : (pageIndex * pageSize)));
page.setPageIndex(pageIndex);
page.setPageSize(pageSize);
page.setList(list);
return page;
}