繁体   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