我的程序有一个方法,可以获取特定行的计数并将其转换为BigInteger:
private BigInteger getSameSatPremise(ServiceAgreement sa) {
BigInteger count = BigInteger.ZERO;
StringBuffer queryHql = new StringBuffer();
queryHql.append("from Table t1");
Query query = createQuery(queryHql.toString());
query.addResult("count", "count(distinct t1.column1)");
if (query.listSize() > 0) {
count = (BigInteger) query.firstRow();
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
当查询结果为0时,转换工作正常.但是当查询结果为2时,我得到如下所示的转换错误.
Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to java.math.BigInteger
Run Code Online (Sandbox Code Playgroud)
谁能帮忙.
Bat*_*eba 11
Java不是C++,你不能编写自己的转换运算符.
在Java中,您需要使用显式函数来执行您想要的操作.在你的情况下,这是更加冗长
BigInteger.valueOf(query.firstRow())