我用的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环境下实现啊
希望大家帮忙,谢谢了啊

解决方案 »

  1.   

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

  2.   


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

  3.   

    session.createSQLQuery(sql);这个方法就是原生SQL的
    使用HQL
      Query   query   =   session.createQuery("from table");   
      query.setFirstResult(n); //开始记录 
      query.setMaxResults(m);  //查询出来的记录数 
      query.list();  
      

  4.   

    fdsgasdfas sadfasdfasdff asdfasdf
      

  5.   

    哥们,结合spring的getHibernateTemplate()怎么实现啊???
    String hql="from article as a where a.type.id="+articleType
    +" order by a.clicks desc";
    articleType是传过来的参数;
    怎么取前10条数据?
    我试过了,以下这样不行:
    String hql="select top 10 *  from article as a where a.type.id="+articleType
    +" order by a.clicks desc";
    List<Article> list = this.getHibernateTemplate().find(hql);
      

  6.   

    搞什么是拖吗? 2 3 5 6楼的现成的就可以,为什么说4楼的可以? 还要进他的个人csdn
      

  7.   


    不行的。setFirstResult(n); //开始记录   只是第几条开始记数。