Grails select domain objects based on an enum value in an enum list property
我无法根据枚举列表中的值从域对象列表中选择项目。
我的域对象如下所示:
1 2 3 | class Truck { static hasMany = [ makes: Make ] } |
Make 看起来像这样:
1 2 3 | enum Make { KENWORTH, MACK, VOLVO } |
我不太确定如何使用 Truck.findByMake(Make.MACK) 之类的方法将所有在其制造列表中具有此制造的卡车提供给我。这个电话给了我这个错误:
1 | No property found for name [make] for class [class Truck] |
有什么想法吗? Grails 1.2.2.
这个很棘手,动态查找器不支持。我也不知道如何使用 Criteria 查询来做到这一点,但 HQL 会是
1 2 3 | def mackTrucks = Truck.executeQuery( 'select t from Truck t left join t.makes make where make=:make', [make: Make.MACK]) |
您可以使用标准查询使论坛中的答案是她,但您必须对其进行自定义。可能是这样的:
1 2 | Truck.createCriteria.list ={makes{eq('name', Make.MACK)} } |
我认为每个 Enum 都有属性名称。