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