Я нахожу this нить очень полезной, но похоже, что реализация в советах не очень эффективна из-за характера JPA.найти последнюю запись JPA
Я ищу решение для получения последней записи о присоединении к запросу с группировкой, реализуемой JPA, поэтому это не простая работа. Моя реализация ставится «ORDER BY time DESC» в конце и забрать первый из коллекции возврата, вместо использования функции MAX(), которая также должна ввести подзапрос, но мне интересно, это хорошая альтернатива?
Это сложный запрос я сделал на примере из другого примера:
"SELECT oo FROM Order AS oo WHERE oo.id IN " +
"(SELECT temp.id FROM " +
"(SELECT t.order.id AS id, MAX(t.order.orderTime) AS ordTime FROM Transaction t " +
"WHERE t.order.name= :name " +
"GROUP BY t.order.name) AS temp" +
")";
Это вопрос, который я думаю, что может быть хорошей альтернативой, но не уверен:
String query = "SELECT t.order FROM Transaction AS t " +
" WHERE t.order.name= :name " +
" ORDER BY t.order.orderTime DESC";
// and simply just pick up the 1st as the latest entry from result:
Order order = em.createQueryquery , Order .class).getResultList().get(0);
проверка пустого списка была бы хорошей идеей –
@Denis Tulskiy Will do :) Считаете ли вы, что это хорошая практика, чтобы найти последнюю запись вместо того, чтобы поместить все в JPQL? Я задумываюсь о том, что 'ORDER BY DESC' должен быть надежным – Dreamer