У меня есть класс домена, который может принадлежать одному из нескольких классов. Когда я пытаюсь сохранить, я вижу ошибки проверки.Grails принадлежит нескольким классам
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]
}
Ошибка проверки свидетельствует о том, что книга не должна принадлежать ОБА ученика и учителя (и не может быть пустым), но я хочу, чтобы смоделировать его так, что он может принадлежать либо. Как мне это сделать, пожалуйста?
Пожалуйста, не обращайте внимания на то, что для моего примера вы можете изменить его так, чтобы Личность владела книгой, а Учитель и Студент - оба типа Лица. Я хочу знать, как создать правильную принадлежность.
Edit объяснить рассуждения позади требования:
Там будет 3 таблицы создано: Книга, студенты и преподаватели. Мне нужно создать индекс в классе книги, который относится к ученику и учителю. Это значит, что запрос «найти все книги, принадлежащие Учителю А», можно сделать как можно быстрее.
Если бы был только один belongsTo (пример показан, если для учителя владельца), то это делается так:
статическое отображение {индекс учителя: «teacher_idx» } =
ли это требование поддержки индекса я заложенную в вопросе пожалуйста? – John