У меня есть два поля в таблице типа
timestamp:
date_departure и
date_arrival.
И есть соответствующий QHL (я думаю, что можно и понять его на SQL) запрос для выборки данных.
Если у меня пользователь ввёл поле ввода date_departure и не ввёл date_arrival - то я вызываю первый DAO функционал. Если пользователь ввёл оба поля - второй.
Имею:
1-ый
public List<Schedule> getByStationsViaDate(Schedule schedule) {
return sessionFactory.getCurrentSession()
.createQuery("from Schedule where " +
"stationArrival = :stationArrival and " +
"stationDeparture = :stationDeparture and " +
"dateDeparture > :dateDeparture " +
"order by dateDeparture desc ")
.setParameter("stationArrival", schedule.getStationArrival())
.setParameter("stationDeparture", schedule.getStationDeparture())
.setParameter("dateDeparture", schedule.getDateDeparture())
.getResultList();
}
2-ой:
public List<Schedule> getByStationsViaDates(Schedule schedule) {
return sessionFactory.getCurrentSession()
.createQuery("from Schedule where " +
"stationArrival = :stationArrival and " +
"stationDeparture = :stationDeparture and " +
"dateDeparture > :dateDeparture and " +
"dateArrival < :dateArrival " +
"order by dateDeparture desc ")
.setParameter("stationArrival", schedule.getStationArrival())
.setParameter("stationDeparture", schedule.getStationDeparture())
.setParameter("dateDeparture", schedule.getDateDeparture())
.setParameter("dateArrival", schedule.getDateArrival())
.getResultList();
}
Как мне исправить запрос так, чтобы в первом случае данные вытягивались по дате отбытия?