2013-05-17 73 views
4

我正在尋找看看我可以如何將一種排序引入到我擁有的存儲庫方法中的查詢註釋中。 我已經看到了谷歌這個代碼,並在這裏,但我不能讓它工作春天的數據mongoRepository查詢排序

@Query("find({state:'ACTIVE'}).sort({created:-1}).limit(1)") 
    Job findOneActiveOldest(); 

@Query("{ state:'ACTIVE', $orderby: {created:-1}, $limit:1 }") 
Job findOneActiveOldest(); 

我知道,與分頁我一定能成功,但在某些情況下,我不需要分頁,所以我想知道如何使用Query註釋進行設置。

有什麼建議嗎?

+0

有什麼問題嗎?你爲什麼不能讓它不起作用? –

+0

JSONParse在第一個例外的情況下異常,第二個不返回任何東西。 – paul

+0

是不是你的問題? http://stackoverflow.com/questions/10067169/query-with-sort-and-limt-in-spring-repository-interface – kabochkov

回答

12

我不認爲有可能通過@Query註釋來做到這一點。如果你不需要分頁你可以讓你的資料庫方法使用排序參數:

@Query("{ state:'ACTIVE' }") 
Job findOneActive(Sort sort); 

,並使用它:

yourRepository.findOneActive(new Sort(Sort.Direction.DESC, "created")) 
+0

是一個很好的解決方案,謝謝!我仍然無法相信Mong是如何使用Query註釋的。 – paul

+2

這是真的,那裏還有改進的地方。好的一點是,Spring源代碼在github上,所以你可以隨時編寫一個增強的代碼並用它創建請求 –

+1

如果我確實需要分頁? – Nailgun