请教:类型转换错误,如下:

下面这段代码中的这一句BigInteger count = (BigInteger)query.uniqueResult();在使用mysql时候可以,但是换成sql server就报错java.lang.Integer cannot be cast to java.math.BigInteger,
如果换成这句的话 Integer count = (Integer)query.uniqueResult();使用mysql时报错java.lang.Integer cannot be cast to java.math.BigInteger,换成sql server就可以了,我想知道这是什么原因,有人知道原理吗?
@Override
public int getUserCount(int surveyId) {
String sql = "select count(*) from (SELECT distinct(sh.userId) FROM survey_history as sh where sh.userId = ?) as r";
SQLQuery query = sessionFactory.getCurrentSession().createSQLQuery(sql);
query.setParameter(0, surveyId);

BigInteger count = (BigInteger)query.uniqueResult();
//Integer count = (Integer)query.uniqueResult();
return count.intValue();
}

Integer value = Integer.valueOf(query.uniqueResult().toString());

我记得上一个回答就告诉你了,这个可以兼容的嘛;
http://ask.csdn.net/questions/264758

上一个问题也没结帖哦

如果有帮助,希望结帖

应该跟各自数据库返回的数据类型有关