List<Resource> list = commonDAO.qryByHql("from Resource where  resourcename like '%" + search + "%' and resourcetype = '"+searchType+"' order by RESOURCESUBSCRIBEDNUM desc LIMIT "+num+",10"); 是这么写的。结果能执行 但是list的长度不是10
也就是说 desc后面的没有执行。。
不知道为什么 那位大侠解决下 分多给啊

解决方案 »

  1.   

    Hql 里面支持limit吗?query.setMaxResults(10);吧?
      

  2.   

    List <Resource> list = commonDAO.qryByHql("from Resource where  resourcename like '%" + search + "%' and resourcetype = '"+searchType+"' LIMIT " + num + ", 10 order by RESOURCESUBSCRIBEDNUM desc");
    试试这个
      

  3.   

    不能这么写 因为num是变量 也就是取值不定 
    不能写死。。
    Hql 里面如果支持limit。。该怎么写那 。。
      

  4.   

    2楼的也不行 在MYSQL数据库中试了下 不可以。。
      

  5.   

    是这样的 因为页面显示10条语句。
    所以每次取10条被定死了。
    但是从那开始取(也就是num的值)没有定死从程序中获取。。
    这个是我做的分布数据库中的分页中用到的
    数据库是MYSQL的
      

  6.   

    List <Resource> list = commonDAO.qryByHql("from Resource where  resourcename like '%" + search + "%' and resourcetype = '"+searchType+"' order by RESOURCESUBSCRIBEDNUM desc LIMIT "+num+",10"); 现在是有可能HQL语句不支持 limit方法如果我想达到现在的效果 怎么该呢?
    如果可行 分全给
      

  7.   

    commonDAO封装有问题  应该体统分页查询的参数 通过 setFirstResult 和setMaxResult来实现
      

  8.   

    通过 setFirstResult 和setMaxResult来实现
      

  9.   

    现在改用 SQL 来写 如何把 list 转换成 list<Resource> 呢?
    List listsql = commonDAO.qryBySql("select * from tab_resource where  resourcename like '%" + search + "%' and resourcetype = '"+searchType+"' order by RESOURCESUBSCRIBEDNUM desc LIMIT "+num+",10");

    for (int j = 0; j < listsql.size(); j++) {
    Object o = listsql.get(j);

    list.add((Resource) o);
    }我一开始是这么写的 不行。。谁能写个详细点的谢谢了,最好说下原理
      

  10.   

    List <Resource> list = commonDAO.qryByHql("from Resource where  resourcename like '%" + search + "%' and resourcetype = '"+searchType+"' order by RESOURCESUBSCRIBEDNUM desc").setFirstResult(num).setMaxResult(10); 直接这么写不就可以了吗?
      

  11.   


    List<Resource> list= commonDAO.qryByHql("from Resource where  resourcename like '%"+ search+"%' and resourcetype = '"+searchType+"' order by RESOURCESUBSCRIBEDNUM desc").setFirstResult(num).setMaxResult(10);
      

  12.   

    楼主的qryByHql方法是传个字符串吗?
    因为有POJO类,所以用不用泛型都可以。hibernate会用setXx方法把值设进去。Query query = session.createQuery("from Resource where resourcename like :newSearch and resourcetype = :newSearchType order by RESOURCESUBSCRIBEDNUM desc");
    String search = "%"+search+"%";
    List list= query.setParameter("newSearch", search)
                    .setParameter("newSearchType", searchType)
                    .setFirstResult(num)
                    .setMaxResults(10)
                    .list(); 
      

  13.   

    先说说你的架构。用的什么框架?用了spring和hibernate吗?
      

  14.   

    上面给的都试过了。我最后用的是
    sql查询出来后在转换成泛型LIST
    看来HQL语句是不能用LIMIT或者类似的方法了。。
      

  15.   

    转换成泛型LIST就有分页了?  很明显你没有使用大家推荐给你的方面!!!
      

  16.   

    limit 是 Mysql中的分页实现,在Hibernate采用通用方法的就可以实现了,或采用QBC,投影,也可