日期:2014-05-18  浏览次数:20592 次

hibernate的多表查询后的结果该怎么样取出来呢?
public List findAll(){
Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
String hql="SELECT a.id,a.brach,b.brach FROM Brach a ,Brach b where a.fatherid = b.id";
        Query q=session.createQuery(hql); 
return q.list();


试了许多方法,没有用

------解决方案--------------------
按数组下标来取:
List list = q.list();
for(Object o[] : list) {
    System.out.println("第一个" + o[0]);
    System.out.println("第二个" + o[1]);
    System.out.println("第三个" + o[2]);
}
或者用别名,然后绑定到dto中,dto中的字段名和别名要一直。
------解决方案--------------------
Query q=session.createSQLQuery(hql);
 return q.addEntity(EntityClass.class).list();   
EntityClass是个实体类,对应你要查询的字段,list的结果是个EntityClass对象集合,遍历强转为EntityClass就行了。