Как использовать ignorecase в интерфейсе, если этого требует только одно поле

У меня есть класс 'City', который имеет первый элемент в виде String city_name и второй элемент в качестве своей страны, которая является членом объекта Country, т.е.

public static class City {
        @Id
        private String id;
        private String city;
        @DBRef
        private Country country;
}

Я создал интерфейс MongoDB, который реализует класс MongoRepository, как показано ниже:

public interface CityRepository extends MongoRepository<City, String>{

    List <City> findByCityAndCountryIgnoreCase(String city, Country country);
}

Когда я пытаюсь выполнить это, я получаю сообщение об ошибке, что компилятор ожидает String вместо класса Country. Я понимаю, что не хочу применять IgnoreCase для страны, а только для названия города; но как мне создать свою функцию для достижения этой цели?

1 ответ

Решение

Вот разные вкусы:-

Игнорировать случай только для города:-

List <City> findByCityIgnoreCaseAndCountry (String city, Country country);

Игнорировать случай только для страны:-

List <City> findByCityAndCountryIgnoreCase (String city, Country country);

Для города и страны, т.е. для всех объектов недвижимости:

List <City> findByCityAndCountryAllIgnoreCase (String city, Country country);

Spring Data Mongo игнорируется

// Включение игнорирования регистра для отдельного свойства List findByLastnameIgnoreCase (String lastname);
// Включение игнорирования регистра для всех подходящих свойств. List findByLastnameAndFirstnameAllIgnoreCase(String lastname, String firstname);

Другие вопросы по тегам