日期:2014-05-20  浏览次数:20668 次

请教hibernate的HQL的with查询,with怎么使用?

其实就想让hql这样执行, on a.id = b.id XXXX 这里再加上一个and条件,而不要把这个and条件加在 where中。
例如:select a,b from A a left join a.b as b
hql语句输出的sql语句为:
select * from A a left join B on a.id = b.id
如此我想再 on a.id = b.id 后面再添加一个条件,网上查了下说是这样写的:
from Cat as cat
left join cat.kittens as kitten
with kitten.bodyWeight > 10.0
为什么我加上 with 后报错了呢?异常信息为 SQL语句语法问题。
我配置过一对一的关系,
如果这样写select a,b from A a left join a.b as b 是可以正常运行的,如果再加上with就错误了,
如:select a,b from A a left join a.b as b with a.name like '%%',这样写就出错了,

请问大家hibernate的with是怎么写的,怎么用的,还请给出详细的解说,
谢谢了!

------解决方案--------------------
with 改成 and
------解决方案--------------------
on a.id = b.id 后面再添加一个条件 先括起来
------解决方案--------------------
用不再嵌套一个子查询试试
------解决方案--------------------
如此我想再 on a.id = b.id 后面再添加一个条件

用where 不就行了