Query query = service.CreateSession().createSQLQuery("select * from class,text where class.id=text.id ")
    .addEntity("class",Class.class)
    .addEntity("text",Text.class);
    List list = query.list();
    for(int i=0;i<list.size();i++){
     Text text = (Text)list.get(i);
     System.out.println(text.getNames());
    
     Class cl = (Class)list.get(i);
     System.out.println(cl.getClassname());
    }
}我想遍历出两张表的数据,这样写不可以,请问如何遍历多表数据并显示出来呢 谢谢了

解决方案 »

  1.   

    多表查询,每一条记录对应的是一个对象数组
    Object[] obj=(Object[])list.get(i);  
      

  2.   

    Text text = (Text)list.get(i);  ==》 Object[] obj=(Object[])list.get(i);  
    for (Object o : obj) {
        if (o instanceof Text) {
            // ...
        } else {
            // ...
        }
    }
      

  3.   

     Query query = service.CreateSession().createSQLQuery("select {class。*} from class,{text。*} where class.id=text.id ") 
        .addEntity("class",Class.class) 
        .addEntity("text",Text.class); 
      

  4.   

    这个查询会返回一个Object的List,每个Object包含两个对象一个Class,一个Text
    List(Object[Class,Text],Object[Class,Text],Object[Class,Text]。);
    编列数组获取对象即可