2012-10-17 9 views
10

Yuvalanmış nesne için hazırda bekleme ölçütleri oluşturma konusunda yardıma ihtiyacım var. Örneğin:İç içe geçmiş nesne için groovy/grails cinsinden ölçütler nasıl oluşturulur?

class office{ 
    Integer id; 
    OfficeDetails cmdData ; 
} 

class OfficeDetails { 
    Integer id; 
    Region region; 

} 

class Region { 
    Integer id; 
    Integer regionNum; 
} 

Şimdi, gibi belirli bir bölge ile eşleşen ofislerinin tüm yukarı çekmeye çalışıyorum hizmet sınıfı (officeService) den: "org: Her zaman istisna alma

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

    return allOfficesInTheRegion 
} 

. hibernate.QueryException: özellik çözemedim: " Bu sorgu için ölçütler oluşturmak için doğru yolu bulmalıyım.

cevap

16

bakın criteria section of the user guide altında "ilişkilendirmeleri sorgulama": My için

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

ve diğerleri çalışma kodu kopyalayarak parası: (MyOffice.createCriteria = def kriterleri); def sonuçlar = criteria.list { cmtData { bölgesi { eşdeğer ("regionNum", regionNumber) } } }; sonuç döndür; – Patty