Grails根据枚举列表属性中的枚举值选择域对象

时间:2011-01-28 15:20:28

标签: grails gorm

我无法根据枚举列表中的值从域对象列表中选择项目。

我的域对象如下所示:

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。

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)}
}

我认为每个枚举都有属性名称。