2012-03-08 6 views
0

アーカイブプロセス中に、詳細を既存のドメインオブジェクトからそのドメインの新しいインスタンスにコピーしています。両方のドメインオブジェクトは、hasManyの関係を持っている:Grails - あるドメインオブジェクトから別のドメインオブジェクトに複数の関係がコピーされていますか?

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 

運がない。 hasManyのStringオブジェクトで問題なく実行できます。しかし、hasManyのドメインオブジェクトではわかりません

答えて

2

Grailsには、このような関係を追加するための組み込みメソッドがあります。これを試してみてください:

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

ありがとうございます - これを処理する方がはるかに優れています。 – user82302124

関連する問題