无法访问grails一对多关系数据

时间:2014-05-30 04:05:50

标签: grails gorm

我问一个转储问题,因为我是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

请有人建议我该怎么做。我现在被困了。为什么第一个不起作用请解释一下。

1 个答案:

答案 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