嗨之间: 我只是学习有关HQL冬眠HQL不同WITH和WHERE
谁能解释或提供HQL WITH和WHERE约不同的一些链接?
从http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html
例子,如:
从猫的猫 左加入cat.kittens如小猫 与kitten.bodyWeight> 10.0
我可以用取代与其中?
THX
嗨之间: 我只是学习有关HQL冬眠HQL不同WITH和WHERE
谁能解释或提供HQL WITH和WHERE约不同的一些链接?
从http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html
例子,如:
从猫的猫 左加入cat.kittens如小猫 与kitten.bodyWeight> 10.0
我可以用取代与其中?
THX
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
取代 “与” 和 “其中” 限制了结果猫该具有小猫与体重> 10.0。 使用“与”甚至猫没有小猫。
太棒了,所以细节!让我试试看谢谢 – EeE 2011-04-28 08:30:02
在这个例子中,结果是一样的吗?我对吗?你能否提供一些具有不同结果的例子? – EeE 2011-04-28 08:33:34
@ user380690:不,因为左外部连接,它* *不会相同。第一个查询返回数据库中的所有猫,如果它们的体重超过10的小猫,它会加入它们,如果没有这样的猫,则将小猫的列设置为null(但仍然返回猫)。第二个查询只返回*有小猫体重超过10的猫。 – 2011-05-03 05:55:05