我搜索了一种使用 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 似乎不喜欢操作符。
只有在两个实体之间有关联时,才能使用 HQL 中的左连接。由于您的查询将连接的实体强制为非空,因此内部连接会做同样的事情。仅当您在两个实体之间建立关联时,也可以使用连接语法进行内部连接。但是您可以通过在 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'
我不使用休眠,但从这个例子来看:
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'