我想知道用JPA获取表的最后一个条目的最佳方法是什么.在Sql中,我正在寻找的是:
select id from table order by id desc limit 1
Run Code Online (Sandbox Code Playgroud)
我在考虑model.count(),但这听起来更像是一个黑客而不是一个好的解决方案;)
arn*_*noe 39
查询方法的结果可以通过关键字first或top来限制,可以互换使用.可选的数值可以附加到top/first以指定要返回的最大结果大小.如果省略该数字,则假定结果大小为1.
JpaClass findFirstByOrderByIdDesc();
Run Code Online (Sandbox Code Playgroud)
ray*_*d09 23
您可以使用JPQL query看起来与查询非常相似的内容.
select t from JpaClass t order by t.id desc
Run Code Online (Sandbox Code Playgroud)
建立你的后,Query object你可以打电话
query.getSingleResult() or call query.setMaxResults(1)
Run Code Online (Sandbox Code Playgroud)
其次是
query.getResultList()
Run Code Online (Sandbox Code Playgroud)
编辑:我的错误:请注意mtpettyp的评论如下.
不要使用query.getSingleResult()作为一个例外可能会被抛出,如果不是正好有一个返回行 - 看java.sun.com/javaee/5/...() - mtpettyp
使用setMaxResults和getResultList.
query.setMaxResults(1).getResultList();
Run Code Online (Sandbox Code Playgroud)
小智 8
我知道我参加聚会迟到了,但这可能对某人有帮助。如果您想通过创建的时间戳获取最新条目。(当你不想依赖表id时):
YourEntity findFirstByOrderByCreatedTsByDesc();