说,使用hql,我从四个表中选择(t1,t2,t3,t4)。
这就是我的hql的样子:
String multiTableHql = "from tbl1, tbl2, tbl3, tbl4"; // omitting filtering
Query mtq = myDao.getInstance().getSession().createQuery(multiTableHql);
现在,我的理解是,调用 mtq.list()显然会带来一个对象列表,其中每个对象的属性都是那些表。
我如何迭代该列表,以便我可以单独获取每个表?
我已经尝试过 Iterator,ArrayList 但显然没有成功。可能是我做错了。
请建议我这样做的正确方法。提前谢谢。
答案 0 :(得分:1)
您的此查询实际上是笛卡尔积。因此,如果所有表格都有1000行,您将得到1000 * 1000 * 1000 * 1000 = 1万亿个结果。
如果我们谈论ToOne关联,最好用SQL或HQL加入它们(如果你有从t1到t2到t3到t4的可导航映射)。
如果这些是ToMany协会,加入你将获得一个笛卡尔积,在这种情况下,4个不同的选择将获得4 * 1000结果(优于1万亿)。