У меня есть таблица для хранения предметов, и я хочу получить самую последнюю созданную или обновленную запись. В таблице есть «созданный» столбец даты и «обновленный» столбец даты. Конечно, я мог бы легко по отдельности извлечь запись с последней датой создания и запись с самой последней обновленной датой, а затем сравнить их в моем коде. Но, частично из соображений производительности, я бы предпочел сделать это с помощью одного HQL запроса и получить только одну запись назад.
Не думаю, что это такая необычная потребность, но поиск в Google не выявил онлайн-примеров, отвечающих всем требованиям.
Кстати, вот запрос HQL , который я написал, но он содержит ошибки. Я впервые пытался использовать greatest()
в именованном запросе HQL .
Select m from Movement as m inner join fetch m.vessel as v where greatest(m.created, m.updated) and m.status = 'ACTIVE' and v.id = :vesselId
С уважением,
Крис.