我收到此错误:
java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Integer
我的想法是检查选择的计数值,但我在转换它时遇到问题。
附上下面的代码。
有什么想法吗?
public List<Map<String, Object>> contaQuery(String sqlCount) throws MensagemException {
Session session = HibernateUtil.getSession();
try {
String sql = sqlCount;
int query = ((Integer) session.createSQLQuery("select count(*) from (" + sqlCount + ") as subquery")
.uniqueResult());
if (query <= 50000) {
return rodarQuery(sql);
} else {
throw new MensagemException("Too many Registers");
}
} finally {
session.close();
}
}
最佳答案
正如 Farlan 评论中所述,
通过调用 intValue()
final Query query;
final BigInteger bigResult;
final int result;
query = session.createSQLQuery("select count(*) from (" + sqlCount + ") as subquery");
bigResult = (BigInteger)query.uniqueResult();
if (bigResult != null)
{
result = bigResult.intValue();
}
else
{
result = ...some value of your choosing, perhaps 0.
)
if (result < 50000)
... stuff
关于java - Hibernate 查询将 count 转换为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46610606/