SQLName=
"select a.*,b.gender,b.birthday,b.national,b.marital_status,b.education,b.address,b.email,b.contact,b.occupation,b.vis   it_demand,b.customer_notes 
from Subscriberinfo a,Customers b 
where a.subscriberid=b.subscriberid(+)";List subscriberinfoList=session.createSQLQuery(SQLName).list();subscriberinfoList.size和我预期的完全吻合,证明数据已经被读到了subscriberinfoList里求教各位,怎样能把subscriberinfoList的数据取出来

解决方案 »

  1.   


    Iterator it=list.iterator();
         while(it.hasNext()){
         Object[] obj=(Object[])it.next();
         System.out.println(obj[0]);
         System.out.println(obj[1]);
         System.out.println(obj[2]);
           .....
        
         }
      

  2.   


    其实我也不反对HIBERNATE返回个ResultSet 无论如何都封装一下怪难受的如果可以的话LZ也可以创建完毕后给他指定一个实体
      

  3.   

    2楼的朋友:
    我感觉用SQL语句进行联合查询,查出来的数据列表,无法直接赋给一个bean,我现在处于扫盲阶段,如果有说的不对的还请多多指教。
      

  4.   

    for(Object[] obj:list){
                System.out.println(obj[0]);
                System.out.println(obj[1]);
                System.out.println(obj[2]);
    } list直接循环就可以,不必迭代。
      

  5.   


    由于我现在在用公司提供的方法 所以我没有办法去实验一些东西 你要有条件的话可以实验下增加的实体必须是Hibernate的PO么? 可以不可以是随便建立的一个JAVABEAN?其实指定SQLQuery的实体没啥意思 有些时候活用join语句 利用实体构造器才是最好玩的方式
      

  6.   


    XXXBean bean=new XXXBean();
    List<Object[]> list=session.createXXXX.list();
    if(list!=null&&!list.isEmpty()){
    for(Object []params:list){
    if(params.length>=3){
    bean.setXXX=(String)params[0];
    bean.setXXX=(Intger)params[1];
    bean.setXXX=(Date)params[2];
    }
    }
    }
      

  7.   


    List subscriberinfoList=session.createSQLQuery(SQLName).list();
      for(Object[] objs:subscriberinfoList)
    {
        system.out.println(objs[0]);
        system.out.println(objs[1]);
        system.out.println(objs[2]);
    }