我的猜测,你可以试一下:
第一个方法在你返回iterator的时候, 可能hibernate还没有查询出任何东西.只有到你
iterate.next()的时候,hibernate才做记录的提取. 第二个方法,立刻就会取出记录.还有就是仔细检查你的hbm.xm.文件的配置.

解决方案 »

  1.   

    同意juanxincai(pyh) 的说法,建议做法
    while(iterate.hasNext()){
    iterate.next(); 
    }
    应该就可以了吧
      

  2.   

    这个和hbm.xml有什么关系吗!?看了一下源码,问题所在
    public List find(CriteriaImpl criteria) throws HibernateException
    {
        ...
        List results = Collections.EMPTY_LIST;
        return results;
        ...
    }
    返回的是一个static final List;
    而iterate()返回的是Iterator;
      

  3.   

    那么大家在取得所有结果集的时候一般使用list()还是iterate().
      

  4.   

    我一般都用list,为什么要用iterate,没什么好处。