2

グレイル 2.2.1

私のシンプルなドメイン:

class Article{
    SortedSet<Photo> photoGallery

    //helper method
    Photo getMainPhoto(){
        Photo mainPhoto = photoGallery.find{it.mainPhoto}
        return mainPhoto
    }
}

1 対多の photoGallery は遅延フェッチされます

getMainPhoto.gsp ビューからメソッドを呼び出します。問題は、怠惰な 1 対多のフォト ギャラリーからメインの写真を取得しようとすると、(常にではありませんが) 時々エラーが発生することですLazyInitializationException

そのメソッドを呼び出すたびにではなく、これが時々発生するのはなぜですか? それは正常ですか?そして、関係を熱心に取得せずに、どうすればそれを修正できますか?

ありがとう

4

2 に答える 2

0

あなたが与えたコードは、ドメイン クラスを定義する方法Articleですか? のようなものも使用できますSortedSetか? hasManyGrails ですべてを適切に処理するには、1 対多のすべての状況で使用する必要があると思いました。

役立つかもしれないもう 1 つのこと:Articleのような自動生成されたヘルパー メソッドがあるかどうかを確認しgetPhotoGalleryます。つまり、photoGallery直接参照しないでください。

これが役立つ場合は、お知らせください。私自身が混乱しています。

于 2013-10-10T22:05:32.320 に答える