如何在groovy/grails中为嵌套对象创建条件?

Pat*_*tty 11 grails hibernate criteria

我需要帮助创建嵌套对象的hibernate标准.例如 :

class office{
    Integer id;
    OfficeDetails cmdData ;
}

class OfficeDetails {
    Integer id;
    Region region;

}

class Region {
    Integer id;
    Integer regionNum;
}
Run Code Online (Sandbox Code Playgroud)

现在,从服务类(officeService),我试图将所有与某个地区相匹配的办公室拉出来:

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

    return allOfficesInTheRegion
}
Run Code Online (Sandbox Code Playgroud)

总是得到异常:"org.hibernate.QueryException:无法解析属性:"我需要找到正确的方法来为此查询创建条件.任何人都可以帮忙吗?

Ian*_*rts 16

请参阅用户指南条件部分下的"查询关联" :

def criteria = {
  cmdData {
    region {
      eq('regionNum', regionNumber)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)