Grails выбирает объекты домена на основе значения перечисления в свойстве списка перечисления - PullRequest
1 голос
/ 28 января 2011

У меня возникают проблемы при выборе элементов из списка объектов домена на основе значения в списке enum.

Мой объект домена выглядит следующим образом:

class Truck {
  static hasMany = [ makes: Make ]  
}

где Makeвыглядит примерно так:

enum Make {
  KENWORTH, MACK, VOLVO 
}

Я не совсем уверен, как сделать что-то вроде Truck.findByMake (Make.MACK), чтобы выдать мне все Грузовики, у которых есть эта Марка в их списке Маков.Этот звонок дает мне эту ошибку:

No property found for name [make] for class [class Truck]

Есть идеи?Грааль 1.2.2.

Ответы [ 2 ]

2 голосов
/ 28 января 2011

Это хитро и не поддерживается динамическими поисковиками. Я также не знаю, как это сделать с запросами Criteria, но HQL будет

def mackTrucks = Truck.executeQuery(
   'select t from Truck t left join t.makes make where make=:make',
   [make: Make.MACK])
0 голосов
/ 28 января 2011

Вы можете сделать запрос с критерием ответа, ее на форуме , но вы должны настроить его.Может быть так:

Truck.createCriteria.list ={makes{eq('name', Make.MACK)}
}

Я думаю, что у каждого Enum есть имя атрибута.

...