站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题hibernate 分页问题

hibernate 分页问题

摘要: hibernate 分页问题


我用的是MYSQL
MYSQL里面不是有这样的分页语句吗?
select * from table limit 8,15

我在hibernate 3 里面怎么构造出这个语句呢?

不好意思,分不多,见谅


顶一下先


我再顶,高手哪里去了


为什么要用native sql呢?这样你的程序移植性不就不够了吗?
考虑
Query q = session.createQuery("from table as t");
q.setFirstResult(8);
q.setMaxResults(7);
List l = q.list();


String hql = "select {u.*} from User as u limit 1,3";
Query query = session.createSQLQuery(hql).addEntity("u",User.class);

List list = query.list();
System.out.println(list.size());
Iterator it = query.list().iterator();
while(it.hasNext()){
User user = (User) it.next();
System.out.println(user.getUserName());
}


我的代码是这样写的
Iterator Result = session.createCriteria(C_T_News.class)
.addOrder(Order.desc("id"))
.setFirstResult(1)
.setMaxResults(8)
.list().iterator();
可最后用ANT编译测试的时候不能通过
它构造出来的SQL语句是这样的:
==================================================================
select limit ? ? this_.ID as ID0_0_, this_.SORT as SORT0_
0_, this_.ISONTOP as ISONTOP0_0_, this_.TITLE as TITLE0_0_, this_.CONTENT as CON
TENT0_0_, this_.AUTHOR as AUTHOR0_0_, this_.VIEWNUM as VIEWNUM0_0_, this_.ADD_DA
TE as ADD8_0_0_ from NEWS this_ order by this_.ID desc
==================================================================
我就搞不明白,limit 为什么会出现在 select 后面
按道理应该出现在 order by this_.ID desc 后面才对

我这里是哪里写错了?



里面有对应关系吗?比如一对多. 如果要在一方进行查询,并且要查询到多方的内容,最好用hql,用join关键字,然后就可以用
.setFirstResult(1)
.setMaxResults(8)
来控制分页了.
否则,需要手工来控制



回 djy1135(晨阳)

里面没有一对多的关系
就只是一个单表 NEWS
这是怎么回事呢
难道它不支持 MySql?


那ypchina(无崖子)回答的就是正确的!!!


郁闷。这个问题还是没有解决



Hibernate是支持MySQL的分页的,你可能在配置文件中的Dialect是错误的吧


晕死,刚无意中发现原来是我的配置文件没有设置好


↑返回目录
前一篇: jsp include 的问题
后一篇: spring的问题