2016-11-10 129 views
2

我是一個Hibernate新手,我有這個下面的查詢。它按我的預期工作。這兩個表格沒有關聯。有沒有一種方法可以通過使用Criteria API獲得相同的結果,或者我如何通過Hibernate運行這個查詢?任何幫助,將不勝感激。休眠條件:休眠左連接沒有關聯

SELECT p.title, c.content 
    FROM posts p 
    LEFT JOIN comments c ON p.id = c.post_id 
    WHERE p.status = 'A' AND (p.title iLIKE '%r%' OR c.content iLIKE '%r%'); 

回答

0

標準API需要實體之間的path,所以我不知道這個連接可以使用標準的API來完成。更好地HQL做,如果你有休眠> = 5.1:

select p.title, c.content 
from org.example.Posts p 
left outer join org.example.Comments c 
on p.id = c.id 
where p.status = 'A' AND (lower(p.title) LIKE '%r%' OR lower(c.content) LIKE '%r%'); 

不過,你可以堅持使用SQL查詢與Hibernate或者更好的是,創建文章和評論之間的關聯。

+0

由於我是一個新手,遇到問題執行。你能否提供一個左連接的例子? – Tartar

+0

我添加了一個例子。 2注意:它需要最新的休眠和HQL不支持不區分大小寫的運算符ilike,所以必須明確小寫 – borowis

+0

我沒有最新版本,我必須用Criteria API來完成。我知道這是沒有意義的,因爲實體之間沒有路徑,但我沒有設計數據庫和實體。 – Tartar