HQL复合查询例子

29 篇文章 0 订阅
	//原生sql与HQL的区别
		/*
		 * 不能直接使用表名,用类名,首字母大写
		 * 关联关系: 多的一方的“属性”(字段)等于一的一方的“表”(类)别名:多:goods gs,orders o一:,goodstype gt,orderdetails:ol
		 */
		String hql="select new Map(gt.name as name,sum(ol.money) as y) "+
						"from Goodstype gt,Goods gs,Orderdetail ol,Orders o "+
						"where ol.goodsuuid = gs.uuid and gs.goodstype = gt "+
						"and ol.orders = o and o.type='2' "+ 
						"group by gt.name ";
		return getHibernateTemplate().find(hql);

调用的结果:转成了json格式

原生的SqL语句:

select gt.name,sum(ol.money)
            from goodstype gt,goods gs,orderdetail ol,orders o
            where ol.goodsuuid = gs.uuid and gs.goodstypeuuid = gt.uuid 
            and o.uuid=ol.ordersuuid and o.type='2'
            group by gt.name 

表名转成类名:eg:goodstype-->Goodstype

表字段名转为类属性名:eg:gs.goodstypeuuid-->gs.goodstype 

表之间的关联关系,多的一方保留属性名,一的一方写类/类的别名,eg:gs.goodstype=gt.uuid--->gs.goodstype=gt(gt一的一方的类别名,gs是Goods的别名,是多的一方,一种商品类型Goodstype对应多种商品Goods)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值