select tc.tck_class_name, DATE_FORMAT( ts.tck_src_date,'%Y-%m'),COUNT(ts.tck_serial) 
from TicketSell ts ,TicketClass tc  
where ts.tck_class_id = tc.tck_class_id  
and DATE_FORMAT(ts.tck_src_date,'%Y-%m') in (?,?,?) 
and ts.tck_status <> 3   
and ts.tck_class_id = ?  
GROUP BY DATE_FORMAT(tck_src_date,'%m')
通过上面的hql语句,调用list = this.getHibernateTemplate().find(queryString, values);这个方法,查询我想要的三个结果值,然后返回的list值中,因为返回的不是对象,那么我怎么样能够获取我想要的值呢

解决方案 »

  1.   

    应该是obj 的集  里面实际装有2个对应的list
      

  2.   

    嗯,是obj集合,但是我想要获取具体的值,通过打印,显示这样的值:[[Ljava.lang.Object;@1c4a2d3, [Ljava.lang.Object;@9e0c2d],不是我要的
      

  3.   

    你想要的是2个对象的list是么?
      

  4.   

    for (Iterator<Object[]> a = list.iterator(); a.hasNext();) {
    Object[] test = a.next();
     
    System.out.println(test[0]);
    System.out.println(test[1]);
    System.out.println(test[2]);  ......
    }
      

  5.   

     可以强制类型转换啊,list = (你的List类型)this.getHibernateTemplate().find(queryString, values);
      

  6.   

    不是,是我查询的那三个聚合结果,那三个结果应该在list集合中
      

  7.   


    for(Object o : list){
    Object[] obj = (Object[])o;
    TicketSell ts= (TicketSell)obj[0];
    TicketClass tc=(TicketClass)obj[1];
    int tsid=ts.getId();
    int tcId= tc.getId();
    }
    都是1 1对应的值  你想要什么  自己就能拿出来了
      

  8.   

    你像要的3个结果 应该在我这里 都能得到。 你要是非要 得到一个list,你可以把你要的3个结果在 for里封装封list
      

  9.   

    for(Object o : list){
        Object[] obj = (Object[])o;
        TicketSell ts= (TicketSell)obj[0];
        TicketClass tc=(TicketClass)obj[1];
        int tsid=ts.getId();
        int tcId= tc.getId();
        }
    这个提示了我啦,
    for(Object o:list){
      Object[] obj = (Object[])o;
      String ts= (String)obj[0];
      Long tc=(Long)obj[1];
      String data = (String)obj[2];
      System.out.println(tc+ts+data);
    }这样就可以取出来了,3Q