所以我的存盤庫中有此代碼(示例):
@Query("SELECT distinct s FROM Model1 ss LEFT JOIN ss.model2 s "
Page<Model2> methodName(long customerId, Pageable pageable);
在Model1我有一個欄位 LocalDate lastDate。如果我按Model2 中的欄位排序(通過使用 Pageable),代碼執行正常,但如果我需要按model1欄位排序(例如按lastDate),我收到錯誤“無法決議屬性”。如果我在“選擇”中添加此欄位,我也會收到錯誤“無法轉換為 Model2 類”。我能為它做什么?我不想添加“Order by”子句,也不想將這個欄位“lastDate”添加到 Model1 中。有沒有其他方法可以解決這個問題?
PS 可分頁物件使用以下方法簽名指定:
public PageRequest(int page, int size, Direction direction, String... properties)
uj5u.com熱心網友回復:
你不能。
您正在回傳Model2,其中沒有關于 的資訊lastDate,所以怎么JPA知道?
您也不能將它添加到您的SELECT陳述句中,因為回傳 Entity 的型別Model2再次無法理解lastDate。
您的 Model2 需要了解lastDate才能對其進行排序/分頁。
在 JPA 中,為了能夠按特定欄位排序,該欄位必須是 select 陳述句中回傳物體的一部分。您無法對未回傳的屬性進行排序
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/358239.html
