我试图摆脱我们的一个HQL中的左连接提取:
query =从ClassPos r中选择r,f,c,ClassFal f,ClassCon c left join fetch c.ClassReg
DB包含满足以上where子句的数据:
ClassPos有1行,ClassFal有2行,ClassCon有1行,ClassReg有1行。
我们使用可滚动的结果滚动搜索结果:
ScrollableResults results = query.scroll(ScrollMode.SCROLL_INSENSITIVE);
i =0
while(results.next())
{
i++
}
print(i);
我们期望结果集有2行,但它返回1(i = 1)。当我们运行SQL时,我们可以在DB中清楚地看到2行。
现在,当我们摆脱左连接提取时,我们看到结果集有2行:
query = select r,f,c from ClassPos r, ClassFal f ,ClassCon c
where <clause>
试图查找各个地方,但无法得到理由。有人可以解释这种行为吗?