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

标签 grails gorm

我要问一个转储问题,因为我是个新手。

我有两个 Realm School,Classes

class School {
static hasMany = [ classes: Classes ]
}


class Classes {
static belongsTo = [School]   
}

现在我无法获取数据-如's'学校有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

请有人建议我该怎么办。我现在被困住了。为什么第一个不起作用,请向某人解释。

最佳答案

您可以创建一个从Classes域到学校的反向引用,然后按school对象进行搜索。

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

关于grails - 无法访问一对多关系数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23946849/

相关文章:

Grails 过滤器与拦截器

grails - 用于生产部署的Grails 2.5.3 NPE( Assets 管道)

grails - 在grails中访问gsp中的背景图像

grails - 创建标准时为空值

Grails oauth 插件不起作用

grails - Grails中基于角色的域类字段访问

hibernate - Grails GORM JOIN查询

grails - Grails:插件:Drools vs Drools-Gorm

grails - Grails GORM约束

grails - 如何使用匹配的本地变量名称对GORM对象执行 'where'查询