Grails单向多对多

Grails单向多对多,grails,gorm,Grails,Gorm,我有Java/JavaEE背景,最近开始了一个Grails项目 当我编写域模型时,有一个需求:单向多对多。我知道在Jpa/Hibernate中应该是怎样的。我在grails中对此进行了快速搜索,但grails似乎不支持它,一些人建议使用映射类(没有应该如何做的示例) 任何人都可以给我举个例子,或者我应该如何满足这个要求 例如: class Teacher { static hasMany: [students: Student] } class Student { static bel

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

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

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

例如:

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

class Student {
    static belongsTo: Teacher
    static hasMany: [teachers: Teacher]
}
上述代码是使用Grails文档中的双向多对多方法完成的。单向多对多的代码是什么样的

此外,只有学生可以有教师参考,在教师课堂上,它不能得到学生名单

class Teacher {
String name

}

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

}

class StuTeach {

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

谢谢。

我使用了三个班级,如教师、学生和中级教师。从学生可以访问教师参考。在教师方面,我们不能访问学生

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

hibernate支持单向多对多关系,Grails也支持单向多对多关系:


如果将hashMany放在一边会发生什么?并使用联接表?这样你就可以在学生里面有一个老师的集合,一个老师可以和很多学生联系起来。也许我遗漏了什么。你不是在描述一对多吗?你能把想要的表格结构发布给sudhir吗?你是说代码与下面Anantha的代码相似吗?在教师端没有hasMany,而在联接表端有belongsTo?对James Kleeh来说,不,我不是在描述一对多,即多对多,并且有联接表的一对多。不鼓励只链接答案。请查收