大家好: 我正在研究HQL
有没有人可以解释或提供一些关于HQL中WITH和WHERE之间不同的链接?
由http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html
例如:
来自Cat作为猫 离开加入cat.kittens作为小猫 与kitten.bodyWeight> 10.0
我可以将替换为, 吗?
THX
答案 0 :(得分:3)
With
用于“提供额外的连接条件”,这意味着它被添加到连接而不是where子句:
from Cat as cat
left join cat.kittens as kitten
with kitten.bodyWeight > 10.0
将被翻译成类似的内容;
from Cat as cat
left outer join Cat as kitten
on cat.id = kitten.mother_id
and kitten.bodyWeight > 10.0
虽然这个
from Cat as cat
left join cat.kittens as kitten
where kitten.bodyWeight > 10.0
被翻译为
from Cat as cat
left outer join Cat as kitten
on cat.id = kitten.mother_id
where
kitten.bodyWeight > 10.0
答案 1 :(得分:1)
将“with”替换为“where”将结果限制为使用bodyWeight> 拥有小猫的猫10.0。 使用“with”可以获得没有小猫的猫。