我在MongoDB中使用Spring Data。我有一个要求,我想在一个字段上排序,但最后显示空值的行。在SQL的情况下,我们将编写以下查询
select myField
from MyTable
order by case when myField is null then 1 else 0 end, myField
但我无法找到使用PagingAndSortingRepository排序的方法。我们如何定义Sort对象?
想要将其排序为ASC,字段类型为String
答案 0 :(得分:1)
查看有关类型安全查询的section 6.3.3 of Spring Data MongoDB。您可以在存储库接口上实现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。