Метод получения GORM на основе зависимых критериев

Я новичок в Groovy/Grails, так что это может быть простой вопрос. У меня такое ощущение, что это обычный код, но я потратил некоторое время и не могу найти нужную вещь в Google.

У меня есть доменная структура с несколькими отношениями «многие ко многим» (обозначается ‹-->)

Рабочий ‹--> Сборочная линия ‹--> Деталь

Хитрость в том, что в одном классе также есть 2 разных отношения «один ко многим»...

Рабочий -> Инспекционная часть -> Инспекция

Деталь можно проверять много раз, но всегда должен быть человек, который проводит проверку.

Я нахожусь в контроллере сборочной линии, и я могу сделать AssemblyLine.get(id) достаточно легко, но это даст мне все проверки деталей в этой линии. Мне нужна только проверка рабочего, которого я вытащил из сеанса.

Есть ли простой способ сделать это, что мне не хватает? Такое ощущение, что должно быть.


person Bob McNees    schedule 30.04.2013    source источник
comment
Я думаю, что если бы вы привели реальные примеры класса A, B, C и D (например, автор - книга), было бы легче понять ваш вопрос.   -  person James Kleeh    schedule 30.04.2013
comment
Извини за это. Надеюсь, приведенные выше классы облегчат понимание.   -  person Bob McNees    schedule 30.04.2013


Ответы (1)


Просто используйте GORM, например

Inspection.findAllByWorkerAndPart(session.worker,somePart)

Если вам нужна более конкретная информация, запишите классы предметной области с соответствующими свойствами.

Спасибо.

person Shafiul    schedule 02.05.2013
comment
Это даст мне только те части, которые были проверены, верно? Я хочу начать со сборочной линии и отобразить все детали на этой линии, а не только те, которые были проверены рабочим. - person Bob McNees; 02.05.2013
comment
Ага.. это дало бы все проверки не часть. Собственно, какая коллекция вам нужна? Если вам нужны детали, вы можете использовать: `Parts.findAllByAssemblyLineAndWorker(assemblyLine, worker)`. Может дать лучшее предложение, если вы поделитесь своими доменами и поделитесь тем, какие коллекции вам нужны. - person Shafiul; 02.05.2013
comment
Мне нужна информация, начиная со сборочной линии. В настоящее время написан код AssemblyLine.get(params.id). Это почти работает, за исключением того, что он возвращает каждую проверку, тогда как я хочу ограничить включенные проверки. - person Bob McNees; 02.05.2013
comment
Я могу опубликовать больше кода позже, но сейчас я на работе, и, поскольку это личный проект, у меня нет кода на этой машине. - person Bob McNees; 02.05.2013