在hibernate查询Mysql中的limit问题

orginal URL: http://www.iteye.com/post/285160

 

public List findArticlesByBlogID(long blogID) {

         List list = this.getHibernateTemplate().find(BY_BLOGID,new Long(blogID));
return list;
}

String BY_BLOGID = "from Article where blogid = ? order by posttime desc limit 3";

为什么没有按预期返回3条记录,而是返回了全部记录。

 

hql不支持limit

 

使用Hibernate 其实不需要针对特定的数据库写特定语法的SQL语句,参考如下方法:

Java代码
  1. public  List findArticlesByBlogID( final   long  blogID,  final   int  maxCount) {  
  2.     final  String BY_BLOGID =  "from Article where blogId = ?" ;  
  3.     return   this .getHibernateTemplate().executeFind( new  HibernateCallback() {  
  4.         public  Object doInHibernate(Session session)  
  5.                 throws  HibernateException, SQLException {  
  6.             return  session.createQuery(BY_BLOGID).setParameter( 0 new  Long(blogID)).setMaxResults(maxCount).list();  
  7.         }  
  8.     });  

你可能感兴趣的:(sql,Hibernate,mysql)