我无法根据枚举列表中的值从域对象列表中选择项目。
我的域对象如下所示:
class Truck {
static hasMany = [ makes: Make ]
}
其中Make看起来像这样:
enum Make {
KENWORTH, MACK, VOLVO
}
我真的不确定像Truck.findByMake(Make.MACK)这样的东西能给我所有在他们的制造清单中有这个Make的卡车。那个电话给了我这个错误:
No property found for name [make] for class [class Truck]
有什么想法吗? Grails 1.2.2。
答案 0 :(得分:2)
这个很棘手,不受动态查找器的支持。我也不知道如何使用Criteria查询执行此操作,但HQL将是
def mackTrucks = Truck.executeQuery(
'select t from Truck t left join t.makes make where make=:make',
[make: Make.MACK])
答案 1 :(得分:0)
您可以使用条件查询ist,答案是her in the forum,但您必须自定义它。也许是这样的:
Truck.createCriteria.list ={makes{eq('name', Make.MACK)}
}
我认为每个枚举都有属性名称。