簡體   English   中英

Spring JPA存儲庫最近的日期

[英]Spring JPA Repository closest Date

我有一個實體(id,created_date)。 我想在我的JPARepository中創建一個方法,該方法返回從現在開始最接近的行。 CreatedDate是一個ZonedDateTime。 我創建了下一個方法(參數為ZonedTimeDate.now()):

findTopByCreatedDateBefore (返回第一個創建的行)

findFirstByCreatedDateBefore (返回第一個創建的行(為什么一樣?))

findTopByCreatedDateBeforeOrderByCreatedDateDesc (返回最后創建的行)

findFirstByCreatedDateBeforeOrderByCreatedDateDesc (返回上一個創建的行(為什么一樣?))

最后兩個返回我想要的東西,但這是使用它們的最佳方法嗎? 為什么前兩個返回相同的結果?

因為關鍵字TopFirst都將結果限制為默認值1之后的可選數字,所以它們定義要返回的元素數,而不是隱式排序-主要是因為不存在任何排序,除非您明確指定指定它。

沒有任何排序語義就不能定義topfirst ,因為除非您指定排序選項,否則大多數商店都不保證結果的任何排序。 因此,每個方法調用的元素順序甚至可能有所不同。

因此,在您給出的示例中,前兩種方法將結果限制為一個參數。

我只是將PageRequest作為findAll的參數傳遞,其中page為1,pageSize為1,順序為DESC “ createdDate”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM