2011-02-08 11 views
1

あるクラスで2つの異なるタイプのリレーションを別のクラスに実装しているときに、いくつか問題があります。Grails:GORM多対多リレーションシップマッピング

例として、著者は書面による書籍のリストを持ち、次に、彼の好みのものを想像してください。私は次のように正しい多対多の関係を実装することができましたGrailsのGORMのリファレンスページから

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

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

perftectly作業方法を購入です。私はAuthorクラスにpreferedBook関係を追加したいときに問題が来る:保存することにより、その後(テーブルを作成中)と

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

は、この新しい行は動作していないようですが、起動時にエラーが発生しすべての関係が保存されるわけではありません。 (たとえそれらの.save()メソッドがすべてのインスタンスで正しく呼び出されていても)

必要な動作を達成する正しい方法は何ですか?

+0

私はちょうどあなたの正確なコードをgrails 1.3.6でテストし、何の問題も経験しません。 – Gregg

+0

オブジェクトを保存しようとする場所にコードを付ける必要があります。 –

答えて

0

多分mappedByが問題を解決します。しかし、私は2つのm:n関係を持つexamplesしか見つけられていないとは思わない。

0

私の質問Domain Class relationshipsの答えを確認してください。私はあなたの質問が答えを持っているかもしれないと信じています。

1

「hasOne」を試してください。それは子テーブルにFKを格納し、循環依存関係の問題の周りにあなたを得るかもしれません