我问一个转储问题,因为我是grails的新人。
我有两个域名School,Classes
class School {
static hasMany = [ classes: Classes ]
}
和
class Classes {
static belongsTo = [School]
}
现在我无法获得数据 - 比如学校是否有c1,c2,c3类 我检查两种方法。
1. classesInstanceList = Classes.findAllBySchool(s)
它返回null;
2. classesInstanceList = s.getClasses();
它返回以下错误消息
Message: failed to lazily initialize a collection of role: com.test.School.classes, no session or session was closed
请有人建议我该怎么做。我现在被困了。为什么第一个不起作用请解释一下。
答案 0 :(得分:0)
您可以创建从Classes
域到学校的反向引用,然后按学校对象进行搜索。
class Classes {
static belongsTo = [school:School]
static constraints = {}
}
class School {
static hasMany = [ classes: Classes ]
static constraints = {}
String toString(){"$id"}
}
试验:
def s = new School()
def c = new Classes()
s.addToClasses(c)
s.save(flush:true)
println Classes.findAllBySchool(s)
这应该会为您提供与classes
相关的school
。