您的位置:首页 > 理论基础 > 计算机网络

HTTP Status 500 - java.lang.Long cannot be cast to java.lang.Integer

2015-07-26 11:07 639 查看

Hibernate HQL 语句查询时,有时候会遇到这个问题:java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer



根据定位:找到出错的 代码位置

通过调用 allCount 方法,查询出,fw 信息的总数量。

String hql1 = "select count(fw) from TblFwxx as fw where fw.tblUser.uid="+tbuser.getUid();
count = tbifw.allCount(hql1);


allCount(String hql) 方法为:

public Integer allCount(String hql){
Session session = HibernateUtil.getSession();
/*--------出错语句-------*/
Integer count = (Integer) session.createQuery(hql).uniqueResult();

session.close();
return count;
}


出错语句是:

Integer count = (Integer) session.createQuery(hql).uniqueResult();


1、可以这样改:

Long count = (Long) session.createQuery(hql).uniqueResult();

session.close();
return count.intValue();


2、也可以这样改:

Number count = (Number) session.createQuery(hql).uniqueResult();
//因为 Number 是 Long 和 Integer 的父类
session.close();
return count.intValue();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: