Spring Data:在有序的对象列表中获取第一个对象的更好方法是什么?

时间:2015-04-09 14:19:14

标签: spring-data

我需要获取最近更新的对象。以下是我使用Spring Data的方法:

final PageRequest pr = new PageRequest(
  0, 1, Direction.DESC, "updateTime"
);
List<MyObject> objects = myObjectRepository.findAll(pr);
if (objects.size() > 0) {
    return objects.get(0);
} else {
    return null;
}

请注意,MyObject有一个名为UpdateTime的字段。首选非特定于数据库的解决方案。

感谢您的任何意见。

- UPDATE -

我选择了一个答案,但不确定它是否更好。

1 个答案:

答案 0 :(得分:1)

也许你可以通过@Query注释来做到这一点。 http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.at-query

我想在你的存储库界面中你需要定义像

这样的方法
@Query("SELECT o FROM MyObject o ORDER BY o.updateTime DESC LIMIT 0,1")
MyObject findMostRecentObject();

如果您的数据库不支持LIMIT语句,您可以将其替换为您的数据库支持的替代方案。