转义grails标准中的关联名称与包含类变量名称不冲突

时间:2018-06-15 23:03:59

标签: grails escaping associations criteria conflict

这是我的grails域类的简化版本:

class Car {
  int year
  Model model

  List<Car> findCarsBySomeCriteria(int modelId) {
     BuildableCriteria c = createCriteria()
     List<Car> carList = (List<Car>) c.list {
        'in'("year", [1998, 1999])
        model {
            eq("id", modelId)
        }
     }

     carList
  }
}

事实证明,此条件查询失败,因为查询中提到的model关联与类的model属性冲突。

有没有办法逃避条件查询中的model

1 个答案:

答案 0 :(得分:2)

尝试createAlias,例如

List<Car> carList = (List<Car>) c.list {
    'in'("year", [1998, 1999])
    createAlias('model', 'mdl')
    eq("mdl.id", modelId)
}