如何在Java Side Spring上对可分页结果进行排序

时间:2019-04-18 07:30:55

标签: java spring spring-data-jpa spring-data

假设我有以下代码:

Page page = repository.findAll(Entity.class, pageable);

我对排序有特殊要求,即我应该仅按日期而不是时间对datetime字段进行排序。 我找到了一些使用诸如“ date_trunc”之类的postgresql函数来实现此目的的方法,但我不想采用该方法,因为我有更复杂的排序规则,这很难在数据库函数上实现。

我的问题是: 如何使用Spring数据的全部功能(类Sort.Order,同时进行几种排序等等)在Java端对可分页结果进行排序

理想情况下,我想写这样的东西:

    Page page = repository.findAll(Entity.class, pageable);
    page.sortWithMap("mySpecificDate", (date) -> truncateToDate(date))

我期望的是: Spring数据将首先将我的日期映射到截断的日期,然后应用可分页中提供的排序。 该怎么做?

OR

如何在以下db语句中实现规范:

select date_trunc('day', to_timestamp(1548064880000 / 1000))

其中-1548064880000是数据库的时间戳

0 个答案:

没有答案