2014-09-18 25 views
0

我有一個地方,有一個條件如下條款:甲骨文加號的符號來hibernat加入

a.system(+) = 'Test' 

我試圖將其轉換使用連接

left join a where a.system = 'Test' or a.system = null 

但僅此改造冬眠當a.system ='Test'或a.system = null時不返回外連接返回數據。

有沒有正確的解決方案呢?

回答

0

與左連接,你只需要把連接條件。在下面的示例中,您將從表a的所有行中獲得匹配的表b的字段,並且在b中沒有匹配的行時返回null。

select * 
from a left join b on a.field = b.field and b.system = 'Test' 

如果發佈完整的查詢,它會更清晰。

+0

我明白了。但對於使用JPA,所有關係都需要在@Table類中定義。既然這是一個常數的連接,我很困惑應該怎麼做。 – Joseph 2014-09-19 04:52:17

+0

是system ='Test'的唯一條件嗎?請發佈表格的結構和完整的查詢,或者解釋您期望的結果。 – 1010 2014-09-19 13:05:43

+0

這似乎是你的情況[鏈接](http://stackoverflow.com/questions/10202456/how-to-create-a-jpa-query-with-left-outer-join) – 1010 2014-09-19 13:12:11

0

爲了進一步解釋,您總是使用join two tablesresult set或作爲表格的「視圖」。你在這裏有'測試'作爲一個常數。在ANSI你的等效查詢將如下所示:

FROM table_a a LEFT JOIN table_b b ON a.column = b.column AND b.system = 'TEST'