我已經看到,在使用 Spring Boot 時,有 JpaSort 和 Sort 可用于排序和在分頁中使用。我試圖找出這兩者之間的區別,但找不到太多相關資訊。
有人可以從性能角度和實作角度告訴我這兩者之間的區別嗎?
uj5u.com熱心網友回復:
(1)什么是JPA元模型?
通常,當我們撰寫標準查詢時,我們需要參考物體類及其屬性。現在,這樣做的一種方法是將屬性的名稱作為字串提供。但是,這有幾個缺點。社區引入了 JPA 元模型來避免這些缺點并提供對托管物體類的元資料的靜態訪問。一方面,我們必須查找物體屬性的名稱。而且,如果在專案生命周期的后期更改了列名稱,我們必須重構使用該名稱的每個查詢。
來源https://www.baeldung.com/hibernate-criteria-queries-metamodel#prerequisites
(2)JpaSort和之間的繼承Sort
public class JpaSort extends Sort
(3)權威定義。
Sort查詢的排序選項。您必須至少提供一個要排序的屬性串列,該串列不能包含空字串或空字串。方向默認為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元模型Attributes什么Sort不支持。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/372679.html
