我正在使用Spring Repository的自定义查询。我可以这样创建自定义方法:

List<Order> findTop1ByOrderByCreateDateTimeDesc();


获取最新订单。

但是,如何获取按CreateDateTime排序的特定订单的上一个和下一个订单?

最佳答案

以下两个JPQL查询将返回最接近指定createDateTime的订单。

先前的订单:

select o from Order o where o.createDateTime = (select max(prev.createDateTime) from Order prev where prev.createDateTime < :specificOrderCreateDateTime)


下一个订单:

select o from Order o where o.createDateTime = (select min(next.createDateTime) from Order next where next.createDateTime > :specificOrderCreateDateTime)

08-05 16:57