Grails 属于多个 类
Grails belongsTo multiple classes
我有一个域 class 可以属于多个 class 之一。我在尝试保存时看到验证错误。
class Teacher {
Book book
}
class Student {
Book book
}
// book can belong to either a student or a teacher
class Book {
static belongsTo = [student : Student, teacher : Teacher]
}
验证错误表明一本书必须既属于学生又属于教师(两者都不能为空),但我想对其建模,使其可以属于任何一方。请问我该怎么做?
请忽略以下事实,对于我的示例,您可以将其更改为一个人拥有一本书,而一个教师和一个学生都是两种类型的人 - 我想知道如何创建正确的 belongsTo。
编辑以解释要求背后的原因:
将创建 3 个表:Book、Student 和 Teacher。我需要能够在 Book class 上创建一个引用 Student 和 Teacher 的索引。这样可以尽快进行 "find all books that belong to Teacher A" 的查询。
如果只有一个 belongsTo(如所有者老师所示),则这样做:
静态映射={
教师指数:'teacher_idx'
}
嗯,这是非常可行的,只是你的方法在这里是错误的。
belongsTo
用于实体必须且必须与其他实体映射的方式。没有什么比得上他们了。
你能做的是
1. create an Abstract Domain `Book`
2. create an Domain `StudentBook` it belongs to `Student`
3. create an Domain `TeacherBook` it belongs to `Teacher`
所以这里只为三个域创建一个table,命名为Book。此 table 将包含一个字段 class
,它将确定这本书是属于学生还是属于教师。
如果我理解你,那么你可以使用其他版本的 belongsTo
,它不存储所有者 Class 的反向引用,例如
class Book {
static belongsTo = [Student, Teacher]
}
我有一个域 class 可以属于多个 class 之一。我在尝试保存时看到验证错误。
class Teacher {
Book book
}
class Student {
Book book
}
// book can belong to either a student or a teacher
class Book {
static belongsTo = [student : Student, teacher : Teacher]
}
验证错误表明一本书必须既属于学生又属于教师(两者都不能为空),但我想对其建模,使其可以属于任何一方。请问我该怎么做?
请忽略以下事实,对于我的示例,您可以将其更改为一个人拥有一本书,而一个教师和一个学生都是两种类型的人 - 我想知道如何创建正确的 belongsTo。
编辑以解释要求背后的原因:
将创建 3 个表:Book、Student 和 Teacher。我需要能够在 Book class 上创建一个引用 Student 和 Teacher 的索引。这样可以尽快进行 "find all books that belong to Teacher A" 的查询。
如果只有一个 belongsTo(如所有者老师所示),则这样做:
静态映射={ 教师指数:'teacher_idx' }
嗯,这是非常可行的,只是你的方法在这里是错误的。
belongsTo
用于实体必须且必须与其他实体映射的方式。没有什么比得上他们了。
你能做的是
1. create an Abstract Domain `Book`
2. create an Domain `StudentBook` it belongs to `Student`
3. create an Domain `TeacherBook` it belongs to `Teacher`
所以这里只为三个域创建一个table,命名为Book。此 table 将包含一个字段 class
,它将确定这本书是属于学生还是属于教师。
如果我理解你,那么你可以使用其他版本的 belongsTo
,它不存储所有者 Class 的反向引用,例如
class Book {
static belongsTo = [Student, Teacher]
}