Hibernate排序取前10的问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 21:22:06
select * from (select * from A entity order by A.djcs )where rownum<11

这样子在Hibernate里执行不了,原因是前面没有实体.后面单独查的
select * from A entity order by A.djcs 就可以.
不知道如何排序取前10?
不要说全部查出来,再在页面上只显示10条.我要一开始就查的是10条
有没有 直接在语句里取前10的,而不是查出来再用别的方法取前10

String hql = "from A entity order by A.djcs";
Query query = session.createQuery(hql);
query.setFirstResult(1);
query.setMaxResults(10);
List list = query.list();
list里存的就是你要的10条记录

这就是hibernate自带的方法,它就是只查10条,而不是把所有的查出来再取10条

sql = "Select Top " + si.pagesize + " a.MsgId,Content,CreateTime,SendTime,Submiter, SubmitId "
+ "From tbl_MsgInfo a"
+ " Left Join("
+ " Select Top " + ((currentPage -1 ) * si.pagesize) + " MsgID"
+ " From tbl_MsgInfo Where 1=1 " +Condition + " Order By CreateTime Desc"
+ " ) b"
+ " On a.MsgId = b.MsgId "
+ " Where b.MsgId is null"
+ Condition
+" Order By CreateTime Desc";

2楼说的是hibernate中的分页,估计可以做到。符合楼主的要求。顶一下。

select top 10