Нечувствительный к регистру запрос с помощью Spring CrudRepository
С Spring CrudRepository Query; Я хочу выбрать объекты "DeviceType" с этим свойством "name". Но после запроса выберите права на регистр с учетом регистра. Как я делаю это без учета регистра. Спасибо.
public interface DeviceTypeRepository extends CrudRepository<DeviceType, Integer>, JpaSpecificationExecutor<DeviceType> {
public Iterable<DeviceType> findByNameContaining(String name);
}
Ответы
Ответ 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
делает запрос нечувствительным к регистру.