Spring数据jpa,在这个例子中如何过滤并排序结果



我写了一个方法,但正如您所看到的,这里从未使用过Category。

是否可以只在Category与定义相同的地方找到Dishes,并且只在它之后——使用纯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);
}

最新更新