DbUnit-запрос, возвращающий данные типа BigInteger - PullRequest
0 голосов
/ 13 февраля 2012

Я новичок в DbUnit и сталкиваюсь с проблемой ниже при выполнении моего интеграционного теста.

Я использую в памяти базу данных h2 и создал таблицы в соответствии с моим требованием.

Хотявыполняя определенный запрос, который возвращает мне количество идентификаторов клиентов, я получаю исключение приведения класса, так как набор результатов, возвращаемый при запуске с DbUnit (для этого «количества»), имеет тип BigInteger, тогда как мое свойство bean-объекта данных, а также тип столбца тестовой таблицы"int".

Пожалуйста, дайте мне знать, почему я получаю этот тип BigInteger в результате?

Заранее спасибо.

1 Ответ

1 голос
/ 17 февраля 2012

Возвращенный столбец является выражением, то есть count (x), а не сам столбец (x). Иногда результат функции в столбце может привести к продвижению типа. С http://hsqldb.org/doc/2.0/guide/guide.html в разделе «Интегральные типы»:

Нет встроенного ограничения на размер промежуточных целочисленных значений в выражениях. В результате вы должны проверить тип столбца ResultSet и выбрать соответствующий метод getXXXX () для его получения. Кроме того, вы можете использовать метод getObject (), затем преобразовать результат в java.lang.Number и использовать методы intValue () или longValue () для результата.

...