2017-09-27 61 views
0

我使用以下方法從mysql數據庫中檢索數據並將其作爲List返回。如何使用JPA以相反順序從mysql數據庫檢索數據並存儲在列表中?

public List<Notification> getByUser(ApplicationUser applicationUser){ 
    List<Notification> notificationList = repository.findByUserId(applicationUser.getId()); 
    return notificationList; 
} 

我想以相反的順序在列表中存儲這些數據,因爲我需要首先檢索新數據。有可能嗎?我使用Thymeleaf的每種方法檢索數據。我發現使用百里香不可能以相反的順序獲取數據,所以我必須以另一種方式嘗試。任何幫助表示讚賞。

+1

難道你不能排序嗎? – Ravi

+0

是的。我在數據庫級別做了它。謝謝 – sndu

回答

1

實現ComparableNotification類和覆蓋compareTo()方法來反轉特定字段上的元素。

然後,

List<Notification> notificationList = repository.findByUserId(applicationUser.getId()); 
Collections.sort(notificationList); 
return notificationList; 

其他選項,您可以更新SQL查詢使用

ORDER BY <column_name> DESC; 
1

的回答你的問題,返回按相反的順序數據是棘手:你得到的名單隻有特設。它按照數據庫在數據庫中找到記錄的順序列出實體,其中通常是是您存儲它的順序,但可以隨時根據查詢的執行計劃進行更改。無論您今天收到什麼訂單,明天都可能會有所不同。

如果您需要特定順序的結果,您必須在您的JPQL查詢中指定它。所以它會變成SELECT u FROM User WHERE u.id=? ORDER BY u.id DESC

相關問題