处理Hibernate的聚合查询,从网上copy了一段代码,报了个错误:
java.lang.Long cannot be cast to java.lang.Integer
一查才知道,原来hibernate3之后,当然也有人说3.2以后,返回值改成Long了,直接改成Long,测试一下,可以。
public Long getTotal(final String hql) {
Long result = null;
result = (Long)getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
return query.uniqueResult();
}
});
return result;
}
调用:
Long total = getTotal(“select count(*) from Sysjsgn where js='系统管理员'”);
总结:
代码都是有一定的条件才是正确的,环境不一样,代码能够直接使用的概率很低;
软件成天都在升级,使用别人的东西越多,程序未来升级的需要调整的东西越多,理解原理就可以了,尽量减少使用第三方的软件。