首页 新闻 会员 周边

hibernate hql 子查询排序后取两个行号之间的数据

0
悬赏园豆:40 [已关闭问题] 关闭于 2016-11-21 16:39

背景 :  数据库表是@column 注解创建的,通过需要(条件)取出部分有用数据(只有一张表)

需求 : 在表中先取出符合条件的数据,排序(表t),再从表t中取出行号为10 到20之间的数据

问题补充:

排序我知到

select t.tid from test t where t.tid in(select tid from test1) order by t.logintime desc 

可是排序后怎么去两个行号之间的数据啊?

各位大牛,帮帮忙啊,要是做不出来,分分钟卷铺盖的节奏啊

看你灬梨涡浅笑的主页 看你灬梨涡浅笑 | 初学一级 | 园豆:96
提问于:2016-11-11 15:35
< >
分享
所有回答(2)
-1

举个例子,取第10到第20条数据:select top 10 * from t where id not in (select top 10 id from t)

JoiWilliam | 园豆:546 (小虾三级) | 2016-11-11 16:06

严重: line 1:12: unexpected token: 10
十一月 11, 2016 6:32:10 下午 org.hibernate.hql.ast.HqlParser processEqualityExpression
警告: processEqualityExpression() : No expression to process!
十一月 11, 2016 6:32:10 下午 org.hibernate.hql.PARSER reportError
严重: line 1:77: unexpected token: 10
18:32:10.017 [http-bio-8080-exec-15] ERROR org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler - Exception occurred during processing request: [org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: 10 near line 1, column 12 [select top 10 t from 

还是不行啊,我这用的是hibernate,还是搞不定

支持(0) 反对(0) 看你灬梨涡浅笑 | 园豆:96 (初学一级) | 2016-11-11 18:35
0

Query q = sess.createQuery("from XXX");
q.setFirstResult(20);设置起始行
q.setMaxResults(10);每页条数
List cats = q.list(); //得到每页的数据

要注意的是q.setMaxResults(num);   num是要查询的条数,而不是查到哪个位置 

看你灬梨涡浅笑 | 园豆:96 (初学一级) | 2016-11-18 15:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册