您的位置:首页 > 数据库

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

2020-02-05 02:30 197 查看

       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

  • 点赞
  • 收藏
  • 分享
  • 文章举报
chigua1760 发布了0 篇原创文章 · 获赞 0 · 访问量 1569 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐