日期:2014-05-20  浏览次数:20714 次

求一句hql语句,查询数据库的前5条记录
我用的struts2.0 spring2.5+hibernate3.2开发一个项目,请问大家要提取数据库的最新的5条记录应该怎么写啊,
我用这样的sql写
public List<News> findSixNews()

{
String sql="select top 6 * form tb_news";
return (List<News>)this.getHibernateTemplate().find(sql);
}
但是报错了提示:
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: 6 near line 1, column 12 [select top 6 * form tb_news]


以前我用hql很正常,要实现那种需要的hql语句这么写啊,或者是sql语句能不能在hibernate环境下实现啊
希望大家帮忙,谢谢了啊

------解决方案--------------------
换回hql
------解决方案--------------------
靠,兄弟,这是hibernate你怎么能用top 用top回报错呢 你如果硬要用sql语句的话 那你只能这样做
super().getSssion().createQery(sql) 这样
------解决方案--------------------
Java code

String sql=" form tb_news"; 
Query query = session.createQuery(hql.toString());
query.setMaxResults(5);

------解决方案--------------------
session.createSQLQuery(sql);这个方法就是原生SQL的
使用HQL
Query query = session.createQuery("from table");
query.setFirstResult(n); //开始记录 
query.setMaxResults(m); //查询出来的记录数 
query.list();
------解决方案--------------------
探讨
Java code
String sql=" form tb_news";
Query query= session.createQuery(hql.toString());
query.setMaxResults(5);