这是我的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
?
答案 0 :(得分:2)
尝试createAlias
,例如
List<Car> carList = (List<Car>) c.list {
'in'("year", [1998, 1999])
createAlias('model', 'mdl')
eq("mdl.id", modelId)
}