Smaill_ 2015-05-19 01:21 采纳率: 50%
浏览 3796
已采纳

hibernate多表查询返回object,有没有更好的解决办法

各位大神,您们好!小弟最近才开始学习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;
    }
  • 写回答

2条回答 默认 最新

  • tuobana123 2015-05-19 02:40
    关注

    若是多表查询,从各个表中都要返回字段的话,可以参考我的这篇文章http://blog.csdn.net/pingnanlee/article/details/39493909

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改
  • ¥15 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥20 MATLAB绘制两隐函数曲面的交线
  • ¥15 求TYPCE母转母转接头24PIN线路板图
  • ¥100 国外网络搭建,有偿交流
  • ¥15 高价求中通快递查询接口