Граальс: GORM Отображение отношений многие ко многим и один ко многим - PullRequest
1 голос
/ 08 февраля 2011

У меня возникают некоторые проблемы при реализации в одном классе двух разных типов отношений с другим классом.

В качестве примера представьте, что у Автора есть список написанных книг, а затем тот, который является его предпочтительным.

Со справочной страницы Grails GORM мне удалось реализовать правильное соотношение «многие ко многим» следующим образом:

class Author {
    static hasMany = [books: Book]
}

class Book {
    static belongsTo = Author
    static hasMany = [authors : Author]
}

То есть, работая безупречно.Проблема возникает, когда я хочу добавить отношение PreredBook к классу Author:

class Author {
    Book prefered //My prefered book
    static hasMany = [books: Book]
}

Эта новая строка не работает, возникает ошибка при запуске (при создании таблиц), а затемПри сохранении объектов сохраняются не все отношения.(Несмотря на то, что метод .save () вызывается корректно во всех случаях)

Есть ли у вас какие-либо идеи относительно правильного способа достижения необходимого поведения?

Ответы [ 3 ]

1 голос
/ 08 февраля 2011

Попробуйте "hasOne". Он хранит FK в дочерней таблице и может помочь вам решить проблему циклических зависимостей

0 голосов
/ 08 февраля 2011

Проверьте ответ на мой вопрос Отношения класса домена .Я полагаю, что на ваш вопрос может быть ответ.

0 голосов
/ 08 февраля 2011

Может быть mappedBy решает проблему. Но я не уверен, что нашел только примеров с двумя отношениями m: n.

...