在Hibernate中写SQL用到聚合函数,报错。
java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Integer
引起错误的源码如下:
session = HibernateUtil.getSession();
String sql="SELECT max(a.user_id)+1 from t_special a";
Query q = session.createSQLQuery(sql);
Integer userId =(Integer)q.list().get(0);
this.updateUserIDAddOne(session);
HibernateUtil.closeSession(session);
return userId;
后来打断点看到返回的的却是BigInteger,然后去网上查了一下,好多用聚合函数的都报这个错,于是改成如下:
session = HibernateUtil.getSession();
String sql="SELECT max(a.user_id)+1 from t_special a";
Query q = session.createSQLQuery(sql);
List list=q.list();
Object a=list.get(0);
Integer userId = Integer.valueOf(a.toString());;
this.updateUserIDAddOne(session);
HibernateUtil.closeSession(session);