我将在许多表上使用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

为什么?怎么了?

谢谢。

最佳答案

试试这个查询

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

关于java - 带有多个表的HQL,应该返回什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43983860/

10-13 05:20