java.math.BigInteger与java.lang.Long不兼容

时间:2016-03-22 05:14:48

标签: java sql hibernate

private List getListByInsuredName(TxnListHelper listHelper) throws DAOException{
        Session session = null;
        session = getHibernateSession();
        String query = "SELECT txnRecNo From TxnInsured WHERE InsuredName LIKE :insuredname";
        Query getList = session.createSQLQuery(query);

        if(!GenericValidator.isBlankOrNull(listHelper.getInsuredName())){
            getList.setParameter("insuredname", "%" + listHelper.getInsuredName() + "%");   
        }

        List txnRecNoList = getList.list();
        return txnRecNoList;
    }

criteria.add(Restrictions.in("txnRecNo", getListByInsuredName(listHelper)));

txnRecNo是数据库中的bigint类型字段我想添加标准,它显示异常 java.lang.ClassCastException:java.math.BigInteger与java.lang.Long不兼容 < / p>

2 个答案:

答案 0 :(得分:0)

BigInteger可以保存任意数量的数据。它可能比Long.MAX_VALUE更大。

要转换价值,请使用txnRecNo.longValue()

答案 1 :(得分:0)

来自Java Doc: public int intValue()

  

将此BigInteger转换为int。这种转换类似于Java *语言规范5.1.3节中定义的从long到int的缩小原语转换:如果这个BigInteger太大而不适合int,则只返回低位32位。请注意,此转换可能会丢失有关BigInteger值的总体大小的信息,并返回具有相反符号的结果。

使用intValue()方法将BigInteger转换为long:

txnRecNo.longValue()