значение по умолчанию для даты между - PullRequest
0 голосов
/ 08 июня 2018

Я хочу, чтобы при указании даты возврата всех резервирований я не указывал контроллер, в котором используется RequestParam.Как это

public List<resrvation> getAll(@RequestParam(name = "date1",required = false)) String date1,@RequestParam(name = "date2",required = false)) String date2){
    return resrvationService.getAll( date1,date2);
}

Мой Дао

Query("select DISTINCT  r from reservation  where r.dateRv between :date1 and :date2")
    public List<Reservation> getAll(@Param("date1") Date date1, @Param("date2") Date date2);
}

Ответы [ 3 ]

0 голосов
/ 08 июня 2018

Проще говоря, создайте два метода:

public List<Reservation> getAll():
public List<Reservation> getAll(Date, Date):

И в контроллере, основываясь на полученном параметре, вызовите один или другой.Вот простой пример:

public List<resrvation> getAll(@RequestParam(name = "date1",required = false)) String date1,@RequestParam(name = "date2",required = false)) String date2){
    return date1 == null && date2 == null ? 
        reservationService.getAll() :
        reservationService.getAll(date1, date2)
}
0 голосов
/ 08 июня 2018

Очень сложно ответить на ваш вопрос, не зная, каков ваш технический стек приложений.Если вы используете Java8, вы также можете использовать необязательные параметры запроса.Также попробуйте использовать производные запросы spring-data-jpa в репозиториях JPA, чтобы получить то, что вы хотите.

public List<resrvation> getAll(@RequestParam(name = "date1",required = false)) Optional<String> startDate,@RequestParam(name = "date2",required = false)) Optional<String> date2){
if(date1.isPresent() && date2.isPresent()) {
   return reservationService.findAllBetweenStartDateAndEndDate( date1.get(),date2.get());
} else {
   return reservationService.findAll();
}

}

И в репозиториях

List<Reservation> findAll();
List<Reservation> findByDateBetween(Date startDate, Date endDate);
0 голосов
/ 08 июня 2018

Если вы хотите вернуть все данные, если дата равна нулю, тогда вы можете сделать что-то вроде этого:
выбрать DISTINCT r из резервирования, где
(: date1 равно нулю или r.dateRv> = trunc (: date1)) и
(: date2 равно нулю или r.dateRv <= trunc (: date2)) </p>

использование функции усечения зависит от вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...