hql使用聚合函数之小结

  之前做了个项目,其中涉及到hql语句中使用聚合函数,真那个纠结啊!现将我的一些总结分享一下(仅限个人所理解,有不对之处,尽请谅解。)

  首先,要使用聚合函数,得到的就不是int类型数据,所以在定义pojo类属性时得注意了。

	private double change_count;
 private double wlan_count;
 private double data_count;
 private double send_count;
 private double electricy_count;
 private double platform_count;
 private double totle_count;

当然也可以用Long类型。

这是第一点,第二点需要注意的是hql语句了,如:

		String hql="select new cn.com.starit.local.persistence.po.NetWorkFaultType(sum(t.change_count),sum(t.wlan_count)," +
				"sum(t.data_count),sum(t.send_count),sum(t.electricy_count),sum(t.platform_count),sum(t.totle_count)) from NetWorkFaultType t" +
				" where timeid between '"+20131201+"' and '"+20131231+"'";

其中new出来的对象里必须要有这些值的构造函数(同时需要一个空构造)。

public NetWorkFaultType(double change_count,double wlan_count,double data_count,double send_count,double electricy_count,double platform_count,double totle_count)
	{
		this.change_count=change_count;
		this.wlan_count=wlan_count;
		this.data_count=data_count;
		this.send_count=send_count;
		this.electricy_count=electricy_count;
		this.platform_count=platform_count;
		this.totle_count=totle_count;
	}
public NetWorkFaultType(){}

好了,注意到这两点,基本上就已经可以查询了。

之前在CSDN论坛发了个帖子,里面有不用聚合函数求值的方法,我是想到当初我遇到这个问题的时候在网上找资料的痛苦过程,在此分享一下。

帖子的地址如下:http://bbs.csdn.net/topics/390679437

希望能给遇到这类问题的童鞋带来一些必要的帮助吐舌头

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值