我有 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/