下面这段代码中的这一句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
上一个问题也没结帖哦
如果有帮助,希望结帖
应该跟各自数据库返回的数据类型有关