Spring data jpa,这个例子中如何过滤然后排序结果?

Spring data jpa, how to filter and then sort results in this example?

我写了一个方法,但是正如你所看到的 - 这里的类别从未被使用过。

是否可以只找到类别与定义相同的菜肴,并且仅在它之后 - 使用纯 Spring 数据 jpa 按参数排序? 或者唯一的方法是自定义查询?

public List<Dish> findAllDishesSorted(String sortField, String sortDirection, String category) {
    Sort sort = sortDirection.equalsIgnoreCase(Sort.Direction.ASC.name())
            ? Sort.by(sortField).ascending() : Sort.by(sortField).descending();

            return dishRepository.findAll(sort);
}

您可以将如下所示的方法添加到您的 DishRepository,它应该能够实现这一点,而无需使用 @Query() 注释

编写自定义查询
public interface DishRepository extends CrudRepository<Dish, Long> {
    Dish findByCategory(String category, Sort sort);
}