[英]Spring JPA Repository closest Date
我有一個實體(id,created_date)。 我想在我的JPARepository中創建一個方法,該方法返回從現在開始最接近的行。 CreatedDate是一個ZonedDateTime。 我創建了下一個方法(參數為ZonedTimeDate.now()):
findTopByCreatedDateBefore (返回第一個創建的行)
findFirstByCreatedDateBefore (返回第一個創建的行(為什么一樣?))
findTopByCreatedDateBeforeOrderByCreatedDateDesc (返回最后創建的行)
findFirstByCreatedDateBeforeOrderByCreatedDateDesc (返回上一個創建的行(為什么一樣?))
最后兩個返回我想要的東西,但這是使用它們的最佳方法嗎? 為什么前兩個返回相同的結果?
因為關鍵字Top
和First
都將結果限制為默認值1之后的可選數字,所以它們僅定義要返回的元素數,而不是隱式排序-主要是因為不存在任何排序,除非您明確指定指定它。
沒有任何排序語義就不能定義top
和first
,因為除非您指定排序選項,否則大多數商店都不保證結果的任何排序。 因此,每個方法調用的元素順序甚至可能有所不同。
因此,在您給出的示例中,前兩種方法將結果限制為一個參數。
我只是將PageRequest
作為findAll
的參數傳遞,其中page為1,pageSize為1,順序為DESC
“ createdDate”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.