5

我搜索了一种使用 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 似乎不喜欢操作符。

4

2 回答 2

4

只有在两个实体之间有关联时,才能使用 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'
于 2012-07-31T14:22:31.850 回答
0

我不使用休眠,但从这个例子来看:

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'
于 2012-07-31T13:43:44.617 回答