2
我實現了在Java中使用新澤西州REST Web服務(JAX-RS)。我使用休眠從MySQL數據庫中獲取數據。 與此查詢:
(Select distinct deliverable.id from Task as t where t.project.id= :id And t.user.username = :name order by t.id desc")
.setMaxResults(3)
.setLong("id", projectId)
.setString("name", username)
.list();
我有一個正確的結果,其爲:[275,51,286]。這是每一個ID在數據庫中提供的密鑰:
id key
---------------------
275 2.0
51 cm
286 19.87
現在我用這個查詢(一切都只是deliverable.key代替deliverable.id相同):
(Select distinct deliverable.key from Task as t where t.project.id= :id And t.user.username = :name order by t.id desc")
.setMaxResults(3)
.setLong("id", projectId)
.setString("name", username)
.list();
結果:[「2.0」,「19.88」,「19.99」]。第一個是對的,但第二個和第三個是完全不同的關鍵。
也許它可以通過「別名」或任何其他方式解決。你的建議?
我想你會發現,如果你拿走.setMaxResults,你得到正確的結果,只是以不同的順序。 – 2012-07-12 18:00:11
是的你是對的,但我需要完全按照這個順序。然後獲取前三名,這就是爲什麼我使用.setMaxResults。你有什麼想法如何修改查詢? – Ali 2012-07-12 19:03:24
但是這是什麼順序呢?你不是很明確。對於這兩個查詢請嘗試像'ORDER BY t.id,deliverrable.id',或者您希望它的任何順序。 – 2012-07-12 19:14:09