Grails - Копирование отношений hasMany из одного объекта домена в другой? - PullRequest
0 голосов
/ 08 марта 2012

Во время процесса архивирования я копирую детали из существующего объекта домена в новый экземпляр этого домена. Оба объекта домена имеют отношение hasMany:

static hasMany = [pets:Pet]

Когда у меня следующий сценарий:

def ownerOne = (logic to find owner)
def ownerTwo = new Owner
****ownerTwo.pets = ownerOne.pets****

Как мне сделать эту звездочку? Я устал от этого:

Set<Pet> ownerTwoPets = new TreeSet<Pet>()
   for(Pet p : ownerOne.pets) {
      ownerTwoPets.add(p)
   }
ownerTwo.pets = ownerTwoPets

Без удачи. Я могу сделать это с объектами String в hasMany без проблем. Но я не могу понять это с помощью доменных объектов в hasMany

1 Ответ

2 голосов
/ 08 марта 2012

У Грааля есть встроенный метод для добавления в отношения, подобные этой. Попробуйте это:

ownerOne.pets.each { Pet p ->
  ownerTwo.addToPets(p)
}
...