public List<TabScan> selectById(String code){ Session session = this.getSession();
Query query = session.createQuery("from TabScan as t where t.billCode=?");
query.setString(0, code);
List<TabScan> list = query.list();
Iterator<TabScan> it = list.iterator();
while(it.hasNext()){
System.out.println(it.next().getScanMan());
}
return list;
}
比如我输入12那么数据返回结果是4条``````为什么打出来都是第一条记录? 
打印结果应该为:丁均刘、默认雇员、默认雇员、默认雇员、驾驶员、默认雇员
可是现在的结果:丁均刘、丁均刘、丁均刘、丁均刘、丁均刘、丁均刘谁帮我解决下啊``要疯咯!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【xiaomaha】截止到2008-07-03 09:44:57的历史汇总数据(不包括此帖):
    发帖的总数量:52                       发帖的总分数:2144                     
    结贴的总数量:29                       结贴的总分数:1437                     
    无满意结贴数:1                        无满意结贴分:30                       
    未结的帖子数:23                       未结的总分数:707                      
    结贴的百分比:55.77 %               结分的百分比:67.02 %                  
    无满意结贴率:3.45  %               无满意结分率:2.09  %                  
    楼主加油
      

  2.   

    用hibernate把sql打印出来,在数据库执行一下看看sql对不对
      

  3.   

    数据库执行结果是对的``但是Hibernate中结果只有第一条``返回行数是对的!
      

  4.   

    是你的System.out.println(it.next().getScanMan());
    只打印了一条还是遍历了List只有一条
    按照ls说的 设个断点debug一下看看list中的记录
      

  5.   

    List<TabScan> list = query.list();    for(TabScan tabScan:list){
        System.out.pirntln(tabScan.getScanMan());
    }如果都是一样的话,那么就是你后台返回的数据有问题,或者你session的事务没有控制好
      

  6.   

    System.out.pirntln(tabScan.getScanMan()); 写错了System.out.println(tabScan.getScanMan()); 
      

  7.   

    while(it.hasNext()){
                System.out.println(it.next().getScanMan());
            }这样,打印出来的肯定只有ScanMan啦!
    你要是想把其他的也打印出来就得多几条print啦!
      

  8.   

    最好就这样写吧!
    while(it.hasNext()){ 
                 TabScan ts= (TabScan)it.next();
                System.out.println(ts.getScanMan());
                System.out.println(ts.其他方法));
                System.out.println(ts.其他方法));
                。。
     
            } 
      

  9.   

    while(it.hasNext()){
                System.out.println(it.next().getScanMan());
            }
    你把他改成
    TabScan tabScan=new TabScan();
    tabScan=it.next();
    System.out.println(tabScan.getScanMan());
    不过感觉你直接写System.out.println(it.next().getScanMan());应该也是没错的呀!
      

  10.   

    把生成的sql语句,拷贝到数据库里执行以下,不就知道是哪的问题了嘛
      

  11.   

    拷贝过去``一切都正常``````
    为什么返回到结果放List里就有问题?
      

  12.   

    拷贝过去了``数据库里显示一切正常!
    为什么在Hibernate中将结果存在List中!
    然后打印出来`全是第一条数据啊?但是size长度和数据库返回结果一致!
      

  13.   

    code参数有值吧,debug跟踪一下,看看有没有值
      

  14.   

    在Bean中重写 equals 和 hashCode 方法试试吧
      

  15.   

    自动生成的ID类中有重写的 equals 和 hashCode 方法,可粘贴/复制,如果属性不全请加上