JPA找到最后一个条目

我想知道用JPA获取表的最后一个条目的最佳方法是什么。 在Sql中,我正在寻找的是:

select id from table order by id desc limit 1 

我在考虑使用model.count(),但这听起来更像是一个黑客而不是一个好的解决方案;)

您可以使用看起来非常类似于JPQL queryJPQL query查询。

 select t from JpaClass t order by t.id desc 

在建立Query object您可以调用它

 query.getSingleResult() or call query.setMaxResults(1) 

其次是

 query.getResultList() 

编辑:我的错误:请注意mtpettyp的评论如下。

不要使用query.getSingleResult()作为exception,如果没有返回一行,则抛出exception – 请参阅java.sun.com/javaee/5/…(),mtpettyp

使用setMaxResults和getResultList。

 query.setMaxResults(1).getResultList(); 

查询方法的结果可以通过关键字firsttop来限制,可以互换使用。 可选的数值可以附加到top / first以指定要返回的最大结果大小。 如果省略该数字,则假定结果大小为1。

 JpaClass findFirstByOrderByIdDesc(); 

由Spring Data JPA docs引用