经过测试,发现当查询诸如count(*)统计值时
1、使用的是createQuery,也即用的HQL,调用uniqueResult()方法返回的是Long类型;
((Long)getSession().createQuery(hql).uniqueResult()).intValue()
2、使用的是createSQLQuery,也即用的本地SQL,调用uniqueResult()方法返回的是BigDecimal类型;
((BigDecimal)getSession().createSQLQuery(sql).uniqueResult()).intValue();
由于Long和BigDecimal都是继承于Number类,所以以上可以统一写成
((Number) getSession().createSQLQuery(sql).uniqueResult()).intValue();