Подтвердить что ты не робот

Нечувствительный к регистру запрос с помощью Spring CrudRepository

С Spring CrudRepository Query; Я хочу выбрать объекты "DeviceType" с этим свойством "name". Но после запроса выберите права на регистр с учетом регистра. Как я делаю это без учета регистра. Спасибо.

public interface DeviceTypeRepository extends CrudRepository<DeviceType, Integer>, JpaSpecificationExecutor<DeviceType> {

    public Iterable<DeviceType> findByNameContaining(String name);

}  
4b9b3361

Ответ 1

Точно как @Peter, упомянутый в комментарии, просто добавьте IgnoreCase:

public interface DeviceTypeRepository 
    extends CrudRepository<DeviceType, Integer>, JpaSpecificationExecutor<DeviceType> {

    public Iterable<DeviceType> findByNameContainingIgnoreCase(String name);
}  

Смотрите документацию для списка всех поддерживаемых ключевых слов внутри имен методов.

Ответ 2

Для меня работает следующий запрос Spring data mongo. Я предпочитаю использовать List вместо Iterator

public interface DeviceTypeRepository extends CrudRepository<DeviceType,Integer>, JpaSpecificationExecutor<DeviceType> {
    List<DeviceType> findByNameIgnoreCase(String name);
} 

Ответ 3

В моем случае добавление IgnoreCase вообще не работало.

Я обнаружил, что можно также предоставить опции для регулярного выражения:

@Query(value = "{'title': {$regex : ?0, $options: 'i'}}")
Foo findByTitleRegex(String regexString);

Параметр i делает запрос нечувствительным к регистру.