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()); }