HQL加入了很多表,应该返回什么?

时间:2017-05-15 15:51:54

标签: java hibernate

我将在许多表格上使用Hibernate执行查询,因此我创建了一个类似的方法:

public List<Tab1> getListTab1() {
    Session session = getCurrentSession();
    String hql = "FROM Tab1 t1 join t1.tab2 t2 join t2.tab3 t3";
    Query query = session.createQuery(hql);
    return query.list();
}

使用调试器检查结果似乎是正确的。 所以,我试图迭代结果集,如:

1. List<Tab1> listTab1 = dao.getListTab1();
2. for (Tab1 tab1 : listTab1) {
3.     Tab2 tab2 = tab1.getTab2();
4.  Tab3 tab3 = tab1.getTab3();
5. }

但我在第2行得到ClassCastException

为什么呢?怎么了?

感谢。

1 个答案:

答案 0 :(得分:1)

尝试此查询

String hql = "Select t1 FROM Tab1 t1 join fetch t1.tab2 t2 join fetch t2.tab3 t3";