Как искать два или более параметра в Java Spring? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть две машины в моей базе данных (MySQL).Первый - красный (цвет String) Ferrari (бренд String), а второй - красный (цвет String) Lamborghini (бренд String).Когда я смотрю только после марки, например: «Ferrari», результат - все автомобили, марка которых - «Ferrari».Хорошо, это хороший результат.Но проблема в том, что в поле я ввожу два или более параметра, например: brand = ferrari и color = red.Войти.И результат - красный Ferrari и красный Lamborghini, но это должен быть только красный Ferrari, потому что я напечатал «Ferrari» и «Red».Как вернуть правильный результат?Это мой метод из CarRepository.

List<Car> cars = carRepository.findByBrandOrModel(List<String> brands, List<String> models);

Я не знаю, как исправить этот метод.Только я знаю, что "ИЛИ" неверно.Может кто-нибудь мне помочь? Это мой контроллер

сущность

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

CarRepository

List<Car> findByBrandAndModel(String brands, String models);

После этого контроллер должен иметь,

List<Car> cars = carRepository.findByBrandAndModel("red", "ferrari");

/ ----------------------------------- Или лучшая реализация

CarRepository

Optional<List<Car>> findByBrandAndModel(String brands, String models);

После этого контроллер должен иметь:

Optional<List<Car>> carsOptional = carRepository.findByBrandAndModel("red", "ferrari");
carOptional.ifPresent(e -> do stuff with the cars here);

Это должно сработать ...

0 голосов
/ 30 ноября 2018

Вы можете выполнить поиск следующим образом.в опубликованных вами фотографиях мы не видим метод findByBrandOrModel

List<Car> result = new ArrayList<>();
    for (Car car: cars) {
        if (car.getColor().equals("red") && car.getBrand().equals("Ferrari") {
            result.add(car);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...