NullPointerException из MongoQueryCreator с запросом Spring Data MongoDB с использованием IgnoreCase

Я создал демонстрацию исключения NullPointerException из запроса Spring Data MongoDB с использованием spring -boot-starter-data-mongodb здесь.

NPE выдается при вызове метода spring jpa в MongoRepository, который использует IgnoreCase, и передается значение null. Из связанного кода:

repository.findByFirstNameIgnoreCase(null);

вызовет исключение NullPointerException, где как

repository.findByFirstName(null);

возвращает null.

Итак, как я могу использовать поиск без учета регистра при использовании MongoRepository, где я не могу (легко) гарантировать ненулевые аргументы?

Бонусный вопрос, если это не по дизайну, как я могу это исправить? Могу ли я поднять это в Spring JIRA?

Изменить: подтвержденная проблема, работает над тикетом


person Edd    schedule 06.02.2017    source источник
comment
Spring-Data-MongoDB НЕ ИСПОЛЬЗУЕТ API JPA   -  person Neil Stockton    schedule 07.02.2017
comment
@Neil Спасибо за конструктивный комментарий, он действительно хорошо отражается на вас.   -  person Edd    schedule 07.02.2017


Ответы (1)


Обходной путь может быть

repository.findByFirstNameIgnoreCase(nonNull(arg) ? arg : "");

чтобы защититься от нулевого случая, пока исправление не будет выпущено.

person Edd    schedule 24.02.2017