我有一個地方,有一個條件如下條款:甲骨文加號的符號來hibernat加入
a.system(+) = 'Test'
我試圖將其轉換使用連接
left join a where a.system = 'Test' or a.system = null
但僅此改造冬眠當a.system ='Test'或a.system = null時不返回外連接返回數據。
有沒有正確的解決方案呢?
我有一個地方,有一個條件如下條款:甲骨文加號的符號來hibernat加入
a.system(+) = 'Test'
我試圖將其轉換使用連接
left join a where a.system = 'Test' or a.system = null
但僅此改造冬眠當a.system ='Test'或a.system = null時不返回外連接返回數據。
有沒有正確的解決方案呢?
與左連接,你只需要把連接條件。在下面的示例中,您將從表a的所有行中獲得匹配的表b的字段,並且在b中沒有匹配的行時返回null。
select *
from a left join b on a.field = b.field and b.system = 'Test'
如果發佈完整的查詢,它會更清晰。
爲了進一步解釋,您總是使用join two tables
或result set
或作爲表格的「視圖」。你在這裏有'測試'作爲一個常數。在ANSI你的等效查詢將如下所示:
FROM table_a a
LEFT JOIN table_b b
ON a.column = b.column
AND b.system = 'TEST'
我明白了。但對於使用JPA,所有關係都需要在@Table類中定義。既然這是一個常數的連接,我很困惑應該怎麼做。 – Joseph 2014-09-19 04:52:17
是system ='Test'的唯一條件嗎?請發佈表格的結構和完整的查詢,或者解釋您期望的結果。 – 1010 2014-09-19 13:05:43
這似乎是你的情況[鏈接](http://stackoverflow.com/questions/10202456/how-to-create-a-jpa-query-with-left-outer-join) – 1010 2014-09-19 13:12:11