/ / Додайте нову дитячу екземпляр в Grails - grails

Додайте новий дочірній екземпляр у Grails - grails

Який найкращий спосіб додати інший екземпляр дитини в Грааль?

Якщо у мене є ці домени

class Parent {
String name
static hasMany = [children: Child]
}

class Child {
String name
static belongsTo = [parent: Parent]
}

Чи можу я вручну отримати ідентифікатор батьків і зберігати його до дочірнього екземпляра, якщо хочу створити нову дитину?

Відповіді:

1 для відповіді № 1

Спробуйте це:

Parent parent = Parent.get(parentId)

Child child = new Child(
parent: parent,
name: "name"
)

child.save()
parent.addToChildren(child)
parent.save()

або ...

Parent parent = Parent.get(parentId)
Child child = new Child()
child.name = "name"
child.parent = parent
child.save()
parent.addToChildren(child)
parent.save()

0 для відповіді № 2

Код rcgeorge є дійсним, але вам не потрібно зберігати дитину перед використанням методу addTo, оскільки він буде збережений каскадом. Так що ...

Parent parent = Parent.get(parentId)

Child child = new Child(
parent: parent,
name: "name"
)

parent.addToChildren(child)
parent.save()