2013-09-05 7 views
3

Я использую RecordMapperProvider, чтобы преобразовать запись jooq соединения в POJO.Jooq: ArrayIndexOutOfBoundsException: -1

Convert.convert(record.getValue("customer_id"), Integer.class); 
.... 

и много других полей, как я хочу, чтобы настроить его для всех полей столбцов, но для этого запроса я не извлечение его, и он бросает ArrayIndexOutOfBoundsException: -1

Мой вопрос, вместо отбрасывать исключение, почему бы ему просто не вернуть null? Чтобы я мог просто настроить его и получать данные всякий раз, когда захочу.

+0

Это нормальное поведение массива, если оно не связано, оно когда-либо даст вам исключение. Если IN ограничено, но пустое, вы получите «null». Это две очень разные вещи. – Gianmarco

ответ

1

Характер исключения обсуждался на user groupa couple of times. Ожидается issue #2655, чтобы исправить это исключение и заменить его более значимым.

Мой вопрос, вместо того, чтобы исключать исключение, почему бы просто не вернуть нуль?

Обоснованием этого легко понять, так как вы не могли различить:

  • запись, содержащую столбец, но получая null для этого столбца.
  • Запись, не содержащая столбец.
+0

Согласен, но я думаю, что в обоих случаях объект java мог просто игнорировать нулевые объекты? –

+0

Я не уверен, правильно ли я вас понимаю. Исключение выбрано, чтобы указать, что столбец не существует. В большинстве случаев это ошибка в вызывающем коде, поэтому с ним следует обращаться с использованием исключения. В этом случае возврат нулевого значения будет очень неоднозначным. –

+0

получил вашу оценку, спасибо –

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