2012-10-17 9 views
10

Ho bisogno di aiuto per creare criteri di ibernazione per l'oggetto nidificato. Per esempio:Come creare criteri in groovy/grails per l'oggetto nidificato?

class office{ 
    Integer id; 
    OfficeDetails cmdData ; 
} 

class OfficeDetails { 
    Integer id; 
    Region region; 

} 

class Region { 
    Integer id; 
    Integer regionNum; 
} 

Ora, dalla classe di servizio (officeService) Sto cercando di tirare su tutti gli uffici che corrisponde a una certa regione come:

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

    return allOfficesInTheRegion 
} 

ottenendo sempre un'eccezione: "org. hibernate.QueryException: impossibile risolvere la proprietà: " Ho bisogno di trovare il modo giusto per creare criteri per questa query. Qualcuno può aiutare?

risposta

16

Vedere "interrogazione associazioni" sotto la criteria section of the user guide:

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

Per il mio e altri beneficio copiando il codice di lavoro: criteri def = MyOffice.createCriteria(); risultati def = {criteria.list cmtData {{ regione eq ("regionNum", regionNumber) }} }; risultati di ritorno; – Patty

Problemi correlati