0

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

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

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

例如:

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

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

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

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

谢谢。

4

2 回答 2

1

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

class Teacher {
String name

}

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

}

class StuTeach {

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

在引导程序中,

        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
于 2013-04-25T11:24:45.823 回答
0

hibernate 支持单向多对多关系,而 Grails 则可以:

http://blog.exensio.de/2013/12/unidirectional-many-to-many.html

于 2013-12-28T15:19:11.570 回答