2014-04-04 28 views
0

我有一種情況,我需要在條件中使用子選擇連接。正常的FetchMode.JOIN(如下所示)不起作用,因爲數據庫是舊的並且映射混亂了。有沒有辦法在我的標準中使用SQL來加入表。如何在條件內編寫HQL語句

def criteria = User.createCriteria() 
List users = criteria.list() { 
    fetchMode "comments", FetchMode.JOIN 
    fetchMode "comments.property", FetchMode.JOIN 
} 
+0

域用戶類怎麼樣? – dmahapatro

+0

謝謝dmahapatro ..實際的域模態有點複雜。通常,我寫的,工作正常。但是,在這種情況下,數據庫中的關聯都是錯誤的,sql是我需要的。有沒有辦法在我的標準中使用SQL來加入表?像sqlRestrictions,但用於連接語句! – ashipj

+0

那麼爲什麼不使用HQL查詢而不是條件?最終,標準將被轉換爲HQL查詢,然後執行。使用'executeQuery'會爲連接提供更多的靈活性。 – dmahapatro

回答

0
def criteria = User.createCriteria() 
List users = criteria.list() { //or User.withCriteria 
    comments { 
     property { 
      .... 
     } 
    } 
} 

應該與你正在嘗試做的。對該協會對property的使用持懷疑態度,否則我會嘗試"property" { }