template limit

数据要分页显示,数据库是MySQL,后台用HibernateTemplate,我想实现
select * from 表名 order by 规则 limit N,M

但是如下SQL,用template不能查询部分数据,查的都是全部数据,Log是类,fileName是他的一个属性
from Log order by fileName DESC limit 60,30
怎么修改?
[b]问题补充:[/b]
谢谢大家
你们的意思我明白了
hql确实不错,还有一个比较业余的问题,criteria如何实现order by的约束!

直接使用Query对象的方法,还可以跨数据库,你的limit只是mysql的
[code="java"]
return getHibernateTemplate().execute(new HibernateCallback(){

        public Object doInHibernate(Session session) throws HibernateException, SQLException {

Query query = session.createQuery("你的SQL");
query.setFirstResult(30);
query.setMaxResults(60);
return query.list();
}
}
[/code]

Query query = session.createQuery("你的SQL");

query.setFirstResult(60);

query.setMaxResults(60+30);

通过HIBERNATE 就直接可以做到。。
你去看看Hibernate源码。。。。

最好直接使用HQL方式查询
[code="java"]return getHibernateTemplate().execute(new HibernateCallback(){

        public Object doInHibernate(Session session) throws HibernateException, SQLException {   

Query query = session.createQuery("你的SQL");

query.setFirstResult(30);

query.setMaxResults(60);

return query.list();

}

} [/code]
如果像你那样写的话就丧失了可移植性
在mysql中,取部分值用的是limit,而在别的数据库就不一定,比如在mssql中使用的就是top..
所以还是使用hibernate的HQL.

[code="java"]
criteria.addOrder(Order.asc("comeDate"));
[/code]

直接用addOrder方法添加一个Order就行了,比如Order.asc("字段")或Order.desc("字段")

又被JONES抢了