2013-01-10 135 views
0

請使用條件或使用某些API將下面的hql查詢轉換爲GORM。我對grails很陌生,而且我搜索了足夠多的東西,但是如果它很簡單,我沒有得到任何積極的解決方案,原諒我。Grails:將Hql查詢轉換爲GORM

MappingDetail.executeQuery(「從MappingMaster選擇map.id作爲地圖其中map.id =(從選擇MappingDetail作爲mapdetail.id其中mapdetail = mapdetail.rawdata_template.id(從RawDataMasterTemplate選擇rawdata.id作爲RAWDATA其中rawdata.name like:name))「,[name:'%Rick%'])

回答

1

爲什麼你必須在這裏使用標準?我認爲這是選擇使用HQL的地方。

def raw = RawDataMasterTemplate.findByNameLike('%Rick%') 
def detail = MappingDetail.findByRawdata_template(raw) 
def master = MappingMaster.get(detail?.id) 
+1

爲什麼三個數據庫查詢比一個好? –

+0

我沒有說他們是,我自己寧願使用op的HQL來代替。但他說他想要GORM。我懷疑這可以寫在標準中。 – Dopele

1

測試此:

MappingMaster.withCriteria { 
    createAlias 'mappingDetail', 'mp' 
    createAlias 'mp.rawDtaMasterTemplate', 'rd' 
    projections { 
    property 'id' 
    } 
    ilike 'rd.name', '%Rick%' 
}