我用hql搜索与左边连接的方法。
这是我的查询
FROM Tvshow e
LEFT JOIN Tvshow e1 ON e1.num = e.num
WHERE e1.code = '024'
AND e.code is not null
AND e.code != '024'
Hibernate似乎不喜欢运营商。
答案 0 :(得分:4)
只有在两个实体之间存在关联时,才能在HQL中进行左连接。由于您的查询将联接实体强制为非null,因此内部联接将执行相同的操作。只有在两个实体之间存在关联时,才可以使用连接语法进行内连接。但是你可以通过在where子句中添加一个相等测试来实现它:
select e from Tvshow e, Tvshow e1
where e.num = e1.num
and e1.code = '024'
and e.code is not null
and e.code != '024'
答案 1 :(得分:0)
我不使用hibernate,但是,通过这个例子判断:
from Cat as cat
inner join cat.mate as mate
left outer join cat.kittens as kitten
从此页面:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-joins-forms
看起来你只是不做ON?让我知道如果我弄错了,我会把它弄下来。
FROM Tvshow e
LEFT JOIN Tvshow e1
WHERE e1.code = '024'
AND e.code is not null
AND e.code != '024'