2012-10-17 75 views
10

我需要幫助創建嵌套對象的休眠條件。例如:如何在groovy/grails中爲嵌套對象創建條件?

class office{ 
    Integer id; 
    OfficeDetails cmdData ; 
} 

class OfficeDetails { 
    Integer id; 
    Region region; 

} 

class Region { 
    Integer id; 
    Integer regionNum; 
} 

現在,從服務類(officeService)我試圖拉起所有一定的區域相匹配的辦公室:

List<Office> findAllByRegion(Integer regionNumber){ 
    def criteria = { eq ('cmdData.region.regionNum', regionNumber) } 
    def allOfficesInTheRegion = Office.findAll(criteria) 

    return allOfficesInTheRegion 
} 

始終得到異常:「組織。 hibernate.QueryException:無法解析屬性:「 我需要找出正確的方式來創建此查詢的標準。任何人都可以幫忙嗎?

回答

16

見 「關聯查詢」 下的criteria section of the user guide

def criteria = { 
    cmdData { 
    region { 
     eq('regionNum', regionNumber) 
    } 
    } 
} 
+0

對於我和造福他人複製工作代碼:高清標準= MyOffice.createCriteria(); DEF結果= {criteria.list cmtData { 區域{ 當量( 「regionNum」,regionNumber) } } }; 返回結果; – Patty