У меня есть данные весны весны запроса, я хочу знать, можно ли в 1 запросе также получить updateDate, откуда происходит минимальная цена
@Query("select min (hp.price) from HotelPrice hp where hp.hotel = ?1 and hp.updateDate > ?2 ")
float getMinPrice (Hotel hotel, Date date);
SELECT hp.price,
hp.updateDate
FROM HotelPrice AS hp
WHERE hp.hotel = ?1
AND hp.updateDate > ?2
ORDER BY hp.price ASC
LIMIT 1
(Я оставлю это для вас, чтобы запустить это в контексте Spring.)
Это на самом деле проще, чем "наибольшее-n-на-группу" или даже "групповой максимум". Просто закажите вывод (ORDER BY
) и отберите первую строку (LIMIT 1
).
SomeCustomType getFirstCustomTypeByHotelIdAndUpdateDateGreaterThanOrderByPriceDesc(Integer hotelId, LocalDate date)
(что - то подобное , кажется , не работает для меня - никакой подсказки , если вы можете использовать полный POJO по запросу), гдеSomeCustomType
имеетBigDecimal
поле цены (не используйте двоичные числа с плавающей запятой для денежных типов, все становится странно) иLocalDate
обновленияLocalDate
(забудьте, что java.util.Date существует, пожалуйста).