Hibernate的count(*)函数通过调用uniqueResult方法的返回值类型

经过测试,发现当查询诸如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();

 

你可能感兴趣的:(Hibernate)