Spring 数据:获取有序对象列表中第一个对象的更好方法?
Spring Data: any better way in getting the first object in an ordered list of objects?
我需要获取最近更新的对象。以下是我如何使用 Spring 数据:
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 的字段。首选非特定于数据库的解决方案。
感谢任何意见。
--更新--
我选择了一个答案,但不确定哪个更好。
也许您可以通过@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 语句,您可以将其替换为您的数据库支持的一些替代方法。
我需要获取最近更新的对象。以下是我如何使用 Spring 数据:
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 的字段。首选非特定于数据库的解决方案。
感谢任何意见。
--更新--
我选择了一个答案,但不确定哪个更好。
也许您可以通过@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 语句,您可以将其替换为您的数据库支持的一些替代方法。