2013-01-10 141 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%' 
}