Hibernate中sql联合多个表查询,并将结果映射成多个实体,再取实体的属性封装到一个bean中...

       hibernate中可以用addEntity("o", Order.class)将查询结果映射成实体,这些实体存放在list中,

具体操作如下

String querysql = "select {o.*},{e.*} from " +sql + " order by o.ORDER_DATE desc "; 
    Query query = session.createSQLQuery(querysql) 
         .addEntity("o", Order.class)
         .addEntity("e", Enterprise.class)
     //一下两行是分页 
     query.setFirstResult(page.getStart());
     query.setMaxResults(page.getLimit()); 
     List<HashMap> list = query.list(); 
     List<OrderForBigItem> ofbiList = new ArrayList<OrderForBigItem>();
     //遍历list 
     Iterator it = list.iterator(); 
     List<Order> orderList = page.getRoot(); 
     List<OrderForEdit> orderFEList = new ArrayList<OrderForEdit>(); 
     while(it.hasNext()){ 
     Object[] result = (Object[])it.next(); 
     Order order = (Order)result[0];
     //获取list中的bean 
     Enterprise entp = (Enterprise)result[1];
     if(null==entp){
         entp = new Enterprise();
     } 
     String status = getOrderDetailStatus(order);
     //封装需要使用的属性到bean中 
     OrderForEdit orderFE = new OrderForEdit(); 
     orderFE.setOrderType(order.getOrderType()); 
}

转载于:https://my.oschina.net/u/3734816/blog/2218751

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值