2013-03-16 60 views
-1

我想形成一個JPQL查詢,它是按某些功能的數量排序的。假設實體籃:JPQL:按次數(i>?)的順序是不允許的

Basket - (Long) id, (String) name, (Set<Thing>) things_in_basket 

我想寫一個查詢,通過一些內部功能進行排序。我想實現這樣的:

SELECT b FROM Basket b ORDER BY COUNT(things_in_basket.id > 1000) DESC 

但它顯然不工作 - 它說:expecting CLOSE, found '>' - 它甚至有可能與JPQL?在傳統的SQL中,這並不困難。

感謝

回答

-1

您在使用ORDER BY子句順序和篩選結果。這是不正確的。 ORDER BY子句只能用於排序結果。如果你想過濾它們,然後添加一個WHERE子句。

SELECT b 
FROM Basket b 
ORDER BY COUNT(things_in_basket.id) DESC 
WHERE things_in_basket.id > 1000 
+0

爲什麼它不正確?在MySQL中它是很好的定義。在我的情況下,甚至會顯示小於1000的值,在您的情況下,它們將被丟棄。 – 2013-03-23 08:59:46