关于hibernate一对多,多的一方加载时生成cross join 语句
如:表a 表b 表c
a 和b 为一对多,b和c为一对多,现在按条件加载c,条件为a中的一个字段,hibernate自动生成了cross join 语句加载正确,想问一下,为什么会生成cross join而不是left join来加载呢?生成的语句大概是:
select .. from c cross join b where b.id=c.bid where b.aid=?
cross join 不是笛卡尔基吗?如果转换成cross join 效率肯定会差吧?怎么能让hibernate自动生成left join ,而不是cross join。