2017-09-27 107 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

相关问题