Joh*_*ith 4 java sql long-integer
我想使用本机sql返回行数.但控制台说我java.math.BigInteger cannot be cast to java.lang.Long
.怎么了?这是我的方法:
public Long getNumRows(Integer id){
Session session = null;
session = this.sessionFactory.getCurrentSession();
Query query = session
.createSQLQuery("SELECT COUNT(*) FROM controllnews WHERE news_id="
+ id + ";");
List firstResult = query.list();
return (Long) firstResult.get(0);
}
Run Code Online (Sandbox Code Playgroud)
Roh*_*ain 12
使用BigInteger#longValue()
方法,而不是将其强制转换为Long
:
return firstResult.get(0).longValue();
Run Code Online (Sandbox Code Playgroud)
好像firstResult.get(0)
回报一样Object
.一种选择是强制转换为BigInteger
:
return ((BigInteger)firstResult.get(0)).longValue();
Run Code Online (Sandbox Code Playgroud)
但是不要这样做.而是使用Nambari在评论中提供的方式.我不是Hibernate的用户,所以我不能提供Hibernate特定的解决方案.