我發現this線程非常有幫助,但它看起來像建議中的實現不是很有效率,因爲JPA的本質。查找JPA最新條目
我正在尋找一個解決方案,以獲取最新的分組加入查詢條目,由JPA實現,因此它不是一項簡單的工作。我的實現最後是「ORDER BY 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);
檢查空列表將是一個好主意 – 2014-10-07 18:14:35
@Denis Tulskiy會做:)你認爲這是一個很好的做法,找到最新的條目,而不是把所有的東西放在JPQL?我思考'ORDER BY DESC'應該是可靠的 – Dreamer 2014-10-07 18:19:52