JpaSort与Sort之间的区别



我已经看到,当使用Spring Boot时,有JpaSort和Sort可用于排序和分页。我试图弄清楚这两者之间的区别,但找不到太多关于这方面的信息。

有人能从性能和实现的角度告诉我这两者之间的区别吗?

(1(什么是JPA元模型

通常,当我们编写条件查询时,我们需要引用实体类及其属性。现在,这样做的方法之一是以字符串形式提供属性的名称。但是,这有几个缺点。社区引入JPA元模型是为了避免这些缺点,并提供对托管实体类。首先,我们必须查找实体属性。并且,在的情况下,稍后在项目生命周期中,我们必须重构名称所在的每个查询正在使用。

源https://www.baeldung.com/hibernate-criteria-queries-metamodel#prerequisites

(2(JpaSortSort之间的继承

public class JpaSort extends Sort

(3(权威定义

查询的Sort排序选项。您必须至少提供一个要排序的属性列表,其中不得包含null或空字符串。方向默认为DEFAULT_DIRECTION

JpaSort排序选项,用于包装JPA元模型属性进行排序的查询。

https://docs.spring.io/spring-data/data-jpa/docs/current/api/org/springframework/data/jpa/domain/JpaSort.html

让我们看看的例子

Page<Product> allProductsSortedByName = productRepository.findAll(Sort.by("name"));
Order order1 = new Order(Sort.Direction.DESC, "published");

List<Employee> list = repo.findByDepartment("Sales", JpaSort.unsafe("LENGTH(name)", "salary"));

(4(结论:JpaSort支持JPA元模型属性Sort不支持什么。

最新更新