gpt4 book ai didi

java - 如何使用 Spring Repository 根据空/非空值对列进行排序?

转载 作者:行者123 更新时间:2023-12-01 14:17:39 24 4
gpt4 key购买 nike

我正在将 Spring Data 与 MongoDB 结合使用。我有一个要求,我想对字段进行排序,但最后显示带有空值的行。如果是 SQL,我们将编写以下查询

select myField
from MyTable
order by case when myField is null then 1 else 0 end, myField

但我无法找到使用 PagingAndSortingRepository 进行排序的方法。我们如何定义 Sort 对象?

想要按ASC排序,且字段类型为String

最佳答案

看看section 6.3.3 of Spring Data MongoDB关于类型安全查询。您可以在存储库接口(interface)上实现 QueryDslPredicateExecutor:

public interface PersonRepository extends MongoRepository<Person, String>, QueryDslPredicateExecutor<Person> {

// additional finder methods go here

}

你可以使用这个方法:

List<T> findAll(Predicate predicate, OrderSpecifier<?>... orders);

OrderSpecifier构造函数采用 NullHandling enumeration您可以将其设置为 NullsFirst/NullsLast 的参数。

关于java - 如何使用 Spring Repository 根据空/非空值对列进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17974663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com