如何按名称和状态为 JPA 存储库查询排序?

How to sort By Name and status Active for JPA repository query?

我正在开发 Spring Boot + Spring Data JPA + Postgres + Lombok 示例。在这个例子中,我想获取所有学生 firstName 是 ASC 顺序并且其状态在 Active.

我开发了以下查询,效果很好,但我看不到在 JpaRepository 查询中也可以使用 status=Active 的方法。

注意:在我的例子中,status 字段是 Java 中的 Enum

有什么方法可以做到吗?我知道我可以获取所有学生,然后使用流可以轻松过滤,但是使用 JpaRepository 查询,有什么办法吗?

List<Student> students = studentRepository.findAll(new Sort(Sort.Direction.ASC, "studentName"));

只需将以下方法签名放入您的存储库中,并在您需要的地方使用参数 'Active' 调用它。

List<Student> findAllByStatusOrderByStudentNameAsc(String status);

在您的 StudentRepository 接口中,扩展 Repository / JpaRepository 您可以添加这样的方法签名:

public interface StudentRepository extends ....{
  List<Student> findAllByStatusOrderByStudentNameAsc(String status);
}