Я пытаюсь правильно определить древовидную структуру в GORM, но у меня возникли проблемы.
у меня есть один объект домена:
class Navigation {
Navigation parent
List children;
String name;
static belongsTo = [parent: Navigation]
static hasMany = [children: Navigation]
static constraints = {
parent(nullable: true);
}
}
и тест:
void testTree() {
Navigation root = new Navigation(name:"root");
Navigation top1 = new Navigation(name:"home");
Navigation top2 = new Navigation(name:"services");
root.addToChildren(top1).addToChildren(top2).save(flush: true);
Navigation s1 = new Navigation(name:"plumbing")
Navigation s2 = new Navigation(name:"baking")
top2.addToChildren(s1).addToChildren(s2).save(flush: true);
Navigation t = Navigation.findByName("root")
assert t.children.size() == 2
}
если я запускаю этот тест, я получаю эту ошибку:
org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: grails.Navigation.addToChildren() is applicable for argument types: (grails.Navigation) values: [grails.Navigation : null]
и если я помещу содержимое этого теста в boostrap, я не получу эту ошибку, и приложение запустится, за исключением того, что таблица навигации пуста
что я могу сделать, чтобы исправить это?
mappedBy
: grails.org/doc/ последний/ref/Domain%20Classes/mappedBy.html - person Victor Sergienko   schedule 24.03.2011