В Grails необходимо определить набор для отношений "один ко многим"?

У меня есть классы домена Grails Child and Toy. У ребенка может быть много игрушек.

class Child {
    static hasMany = [ toys : Toy ]
    String name
}

class Toy {
    static belongsTo = [ owner : Child ]
    String name
}

Было мое понимание, что у ребенка будет игрушечная собственность. То есть, будет метод Child:

public Set getToys()

Но это не работает. Я не могу ссылаться на child.getToys() из класса Java. Я четко определяю игрушки в Child:

class Child {
    static hasMany = [ toys : Toy ]
    String name
    Set toys
}

Это правильно? Нужно ли явно определять набор для отношения "один ко многим"?

Ответ 1

Да, вы должны явно определить свойство, если хотите ссылаться на него с Java. Это связано с тем, как компилятор groovy (groovyc) создает классы-заглушки для groovy beans.