gpt4 book ai didi

grails - Grails属于多个类别

转载 作者:行者123 更新时间:2023-12-02 15:25:30 24 4
gpt4 key购买 nike

我有一个 Realm 类,可以属于几个类之一。尝试保存时出现验证错误。

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]
}

验证错误表明,一本书必须既属于学生又属于教师(两者都不可以为null),但是我想对其建模,以便它既可以属于任何一个。我该怎么做?

请忽略以下事实:对于我的示例,您可以对其进行更改,以使一个人拥有一本书,而一个老师和一个学生都是这两种人-我想知道如何创建正确的belongsTo。

编辑以解释需求背后的原因:

将创建3个表格:书,学生和老师。我需要能够在Book类上创建一个引用学生和教师的索引。这样可以使查询“查找属于教师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`

因此,这里将只为三个域创建一个表,名为Book。该表将包含一个 class字段,该字段将确定这本书是属于学生还是教师。

关于grails - Grails属于多个类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28364670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com