首页 > 解决方案 > Sort.of 中的 Spring 自定义排序

问题描述

有没有办法使用Sort.of这种排序?

    @Query("SELECT l FROM Livestream l WHERE l.status IN ('LIVE', 'FUTURE') ORDER BY CASE WHEN l.status = 'LIVE' THEN -1 ELSE 0 END ASC")
    fun findLiveAndFuture(pageable: Pageable): Page<Livestream>

标签: springhibernatespring-data-jpaspring-data

解决方案


我不确定最后的使用情况,case因为结果很可能同时具有LIVEFUTURE结果,因此案例不会按预期工作。

您可以使用Sortin对象Pageable来定义您想要的排序。这将要求您使用类似的东西PageRequest来实现它。

或者您可以使用在存储库中传递Sort对象,如下所示:

fun findLiveAndFuture(pageable: Pageable, sort: Sort): Page<Livestream>

推荐阅读