【问题标题】:Cant access grails one to many relationship data无法访问 Grails 一对多关系数据
【发布时间】:2014-05-30 12:49:09
【问题描述】:

由于我是 grails 的新手,所以我问了一个转储问题。

我有两个域名 School , Classes

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

class Classes {
static belongsTo = [School]   
}

现在我无法获取数据 - 比如如果's'学校有 c1、c2、c3 类 我检查了两种获取方式。

1. classesInstanceList = Classes.findAllBySchool(s)

它返回空值;

2. classesInstanceList = s.getClasses();

它返回以下错误消息

Message: failed to lazily initialize a collection of role: com.test.School.classes, no session or session was closed

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

【问题讨论】:

    标签: grails grails-orm


    【解决方案1】:

    您可以创建从您的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)
    

    这应该为您提供与您的school 相关的classes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      相关资源
      最近更新 更多