hibernate将普通查询的sql结果集转成对象列表

在ssh2开发中遇到,数据库中并没有设置表的外键关系,用hibernate的hql就不能达到关联查询的效果。

现在只能写sql关联,再写代码把结果集转成对象列表 。

现在用     SQLQuery.addEntity()方法可以实现hibernate自动把结果集转成对象列表。


StringBuffer sql = new StringBuffer();

        
        sql.append("SELECT a.* FROM T_MB_Account a ");
        sql.append("LEFT JOIN t_user_users u ON u.ID=a.UserID ");
        sql.append("WHERE 1=1 ");
        if(accountName.length()>0 && userName.length()==0){
            sql.append("and a.accountName like '%").append(accountName).append("%'");
        }else if(accountName.length()==0 && userName.length()>0){
            sql.append("and u.name like '%").append(userName).append("%'");
        }else if(accountName.length()>0 && userName.length()>0){
            sql.append("and (a.accountName like '%").append(accountName).append("%'");
            sql.append("or u.name like '%").append(userName).append("%'").append(")");
        }
        sql.append(" order by a.accountId");
        
        SQLQuery sQLQuery = session.createSQLQuery(sql.toString());
        sQLQuery.setFirstResult(firstResult);
        sQLQuery.setMaxResults(maxResults);
        
        //把sql的查询结果 插入到对象----list<Object[]>形式存储
        sQLQuery.addEntity("a", TMbAccount.class);
        

        List<TMbAccount> lst = sQLQuery.list();



     sQLQuery.addEntity("a", TMbAccount.class);是关键,TMbAccount是要转换的对象,当然TMbAccount的映射也是要配置好的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值