Одним из возможных решений является использование ORDER BY r.id DESC
:
@Query("SELECT r FROM Reservation r " +
"WHERE r.reservationSeance.id=:seanceId AND r.seanceDate=:seanceDate " +
"ORDER BY r.id DESC")
public Reservation findReservationBySeanceDateAndSeanceId(
@Param("seanceId") int seanceId,
@Param("seanceDate") java.time.LocalDate seanceDate, Pageable pageable);
, и поскольку в JPQL нет способа использовать лимит, вы можете использовать Pageable
Pageable pageable = new PageRequest(0, 1);
Reservation reservation = r.findReservationBySeanceDateAndSeanceId(seanceId, seanceDate, pageable);
Другое возможное решение без запроса:
public Reservation findTop1ByReservationSeanceAndSeanceDateOrderByIdDesc(
ReservationSeanceEntity reservationSenace,
java.time.LocalDate seanceDate
)
В этом втором решении вы должны передать объект ReservationSeance
, а не id
из ReservationSeance
, запрос можно прочитать как:
Find top 1 (first one) by `ReservationSeance` and `SeanceDate` order by `Id` Desc order