0

我正在将 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

4

1 回答 1

1

查看Spring Data MongoDB 的第 6.3.3 节关于类型安全查询的内容。您可以在存储库接口上实现 QueryDslPredicateExecutor:

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

   // additional finder methods go here

}

你可以使用这个方法:

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

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

于 2013-08-01T06:55:02.227 回答