Как добавить несколько объектов в атрибут объекта в Groovy?--- В Bootstrap.groovy - PullRequest
0 голосов
/ 31 августа 2011

Создание простой заявки на покупку в Grails, где у меня есть категория (например: TV, Video ...), марка и товар.Бренд - это связанные (hasMany) категории, например, Sony производит видео и ТВ.

Внутри Bootstrap.groovy я хочу сделать следующее:

Brand jvc = new Brand(name:"JVC")
Brand sony = new Brand(name:"Sony")
Brand samsung = new Brand(name:"Samsung")

Category tv = new Category(name:"Television")
Category video = new Category(name:"Video")
Category laptop = new Category(name:"Laptop")

sony.categories.(tv)   ----> These methods are wrong
sony.addCategory(video) ----> These methods are wrong
sony.addCategory(laptop)

Как связать бренд с несколькими категориями?Заметьте, я пробовал много разных шаблонов методов, но ни один из них не работал.Атрибут в классе Brand является статическим hasMany [category: Category].

1 Ответ

3 голосов
/ 31 августа 2011

Если у вас есть static hasMany = [categories:Category], это добавляет Set с именем categories в ваш класс и добавляет динамический метод addToCategories, который делает то, что вы хотите. Он инициализирует набор, если он равен нулю (будет иметь место для новых экземпляров), затем добавляет экземпляр в набор и, если он двунаправленный, устанавливает обратную ссылку. Таким образом, эти последние три строки должны быть

sony.addToCategories(tv)
sony.addToCategories(video)
sony.addToCategories(laptop)

Это описано в руководстве пользователя и каждой книге по Grails, так как это очень фундаментальная особенность картирования коллекций.

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