2016-03-22 4 views
0
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.Longjava.math.BigInteger несовместим с java.lang.Long

+0

Вы код неясен. Где актеры? Что такое ограничения? Почему вы используете список типов Raw? Где находится StackTrace? – Burkhard

ответ

0

BigInteger может хранить произвольный объем данных. Это может быть больше, чем Long.MAX_VALUE.

Для преобразования значения используйте txnRecNo.longValue()

0

От Java Doc: public int intValue()

преобразует этот BigInteger к междунар. Это преобразование аналогично сужению примитивного преобразования от long до int, как определено в разделе 5.1.3 Спецификации языка Java ™: если этот BigInteger слишком велик, чтобы вписаться в int, возвращаются только 32 разряда младшего порядка. Обратите внимание, что это преобразование может потерять информацию об общей величине значения BigInteger, а также вернуть результат с противоположным знаком.

использования intValue() метода для преобразования BigInteger долго:

txnRecNo.longValue() 
+0

где я могу добавить код –

+0

@LokeshRathor где ваш код, который имеет BigInterger и где происходит кастинг? Ваш код не ясен. –

Смежные вопросы