当前位置: 首页 > 知识库问答 >
问题:

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

拓拔富
2023-03-14

我正在开发Spring Boot Spring Data JPA Postgres Lombok示例。在本例中,我想获取所有名为ASC order的学生,其状态为活动状态。

我开发了下面的查询,它工作得很好,但我在这里没有找到一种方法也可以在查询中使用状态=活动。

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

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

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

共有2个答案

饶骁
2023-03-14

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

List<Student> findAllByStatusOrderByStudentNameAsc(String status);
段溪叠
2023-03-14

在扩展存储库的StudentRepository界面中,可以添加如下方法签名:

public interface StudentRepository extends ....{
  List<Student> findAllByStatusOrderByStudentNameAsc(String status);
}
 类似资料:
  • 目前我一直在使用以下Spring JPA存储库自定义查询, 我需要修改这个查询时,筛选文本将是逗号分隔的值。但按照以下方式,它将是一个动态查询,我如何执行它。 我需要构建动态查询,

  • ...除了这不存在。但这是关于我在这里想做什么。 或相反的: ...它获取每个GameCharacter的最早版本。为此,我已经尝试了,但显然Javers没有从最后开始计算版本。 这方面的Gradle依赖关系是:

  • 问题内容: 我已经寻找了一段时间,想要一种对Javascript对象进行排序的方法,如下所示: 并按名称的字母顺序排序以获得: 我找不到任何可以做到这一点的代码。谁能给我些帮助吗? 问题答案: 根据定义,键在对象中的顺序是未定义的 ,因此您可能无法以适应未来发展的方式进行操作。相反,您应该考虑在实际向用户显示对象时对这些键进行排序。无论它在内部使用什么排序顺序都没有关系。 按照惯例,大多数浏览器将

  • 问题内容: 我是Java 8的新手,我只想按名称排序。但条件是:如果名称重复,则应根据年龄对其进行排序。 例如我的输入是 并且输出应该是 但是我得到类似 表示仅按年龄或名称排序。 这是实现的代码: POJO类: 测试类别: 问题答案: 当前,您是a)仅按一个属性进行比较,b)并未真正利用Java 8的新功能。 使用Java 8,您可以使用方法引用和链接的比较器,如下所示: 这将首先按它们的实例比较

  • 本机查询为: 现在我有了表Hibernate实体,所以我在ApplicationRepository中尝试了 日志上说

  • 我想在中编写一个类似的查询,但它没有返回任何内容: -它不起作用。 一样完美。 以下是我的代码: