繁体   English   中英

Hibernate查询将计数转换为int?

[英]Hibernate Query convert count to int?

我收到此错误:

java.lang.ClassCastException:无法将java.math.BigInteger强制转换为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()将BigInteger返回值从uniqueResult转换为Integer。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM