Grails 单向多对多

标签 grails grails-orm

我有 Java/JavaEE 背景,最近开始了一个 Grails 项目。

在我写领域模型的时候,有一个要求:单向多对多。我知道它在 Jpa/Hibernate 中应该如何。我在 grails 中对此进行了快速搜索,似乎 Grails 不支持它,有些人建议使用映射类(没有示例应该如何做)。

任何人都可以给我一个例子或者我应该如何满足这个要求?

例如:

class Teacher {
static hasMany: [students: Student]
}

class Student {
    static belongsTo: Teacher
    static hasMany: [teachers: Teacher]
}

上面的代码是在 Grails 文档中使用双向多对多完成的。单向多对多的代码是什么样的?

也只有学生可以有教师引用,在教师课上,它不能得到学生的名单。

谢谢。

最佳答案

我使用了教师、学生和中级学习三个类(class)。从学生我们可以访问教师引用。在教师方面,我们无法访问学生。

class Teacher {
String name

}

class Student {
    String name
    static hasMany      = [teachers:StuTeach]

}

class StuTeach {

    static constraints = {
    }
    static belongsTo    = [teacher:Teacher,student:Student]
}

在 Bootstrap 中,
        def t1=new Teacher(name:"t1")
        t1.save(flush:true)
        def t2=new Teacher(name:"t2")
        t2.save(flush:true)

        def stu=new Student(name:"s1")
        stu.save(flush:true)

        def stuteach1=new StuTeach()
        stuteach1.student=stu
        stuteach1.teacher=t1
        stuteach1.save(flush:true)

        def stuteach2=new StuTeach()
        stuteach2.student=stu
        stuteach2.teacher=t2
        stuteach2.save(flush:true)

        stu.addToTeachers(stuteach1)
        stu.addToTeachers(stuteach2)

        stu.save(flush:true)
        println stu.teachers.teacher

关于Grails 单向多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16209663/

相关文章:

grails - 使用 Controller 的触发器执行 Quartz 作业

web-services - 使用Grails Cxf客户端插件设置disableCNCheck

hibernate - 基于用户角色和属性的标准

Grails 数据库迁移插件

html - 如何在getProjectLists上调用我创建的方法,以便从字符串中删除HTML标记

mysql - 如何使事务在 Grails 中工作

在Jetty中运行的Grails在没有布局模板的情况下呈现404错误页面

java - 如何在GORM中GRAILS的类列和hibernate的DTYPE列之间进行转换

Grails createCriteria : finding objects via a field that is a null domain class instance

grails - 一个 Grails 域类中的多个多对多关联