我正试图弄清楚如何使用HQL或Hibernate注释生成一个使用其中包含的'或'子句的简单连接。以下是我希望SQL看起来像的示例:
select *
from tableA
left outer join tableB
on tableA.id1 = tableB.id1
or tableA.id2 = tableB.id2
where ...
我知道我可以为此直接执行SQL代码,但是,我想利用Hibernate抽象级别。我看到了@JoinColumns,但这似乎是联接中的'和'。我正在利用这个类型化HQL查询的连接,所以我也有能力偏离注释并在那里使用它...任何想法?
答案 0 :(得分:1)
我必须说这有点深奥;如果有可能映射你的关联,那么它很可能表现得非常糟糕(除非所涉及的两个表都很小)。
但据我所知,这是不可能的:
tableB
是否包含tableA
行的收集元素?即使是这种情况,您也只能使用此Loader进行直接收集检索;它不会作为更复杂的HQL查询的一部分。