假设我有以下代码:
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是数据库的时间戳