2017-09-07 10 views
0

私はPlay Framework v.2.6.3とSQLアクセス用のJPAソリューションを使用しています。Play Framework:JPAとLazy Loading

私は私のエンティティにFetchType.Lazyを設定すると、私は次のようなエラーメッセージが出ます:$ 1アノン$$

play.api.http.HttpErrorHandlerExceptionsを:実行例外[[のRuntimeException:java.langで。遅延的役割のコレクションを初期化するために失敗しました:例外:IllegalArgumentException models.UserImp.goodsは、プロキシを初期化できませんでした - あなたはドキュメントを再生読めば何のセッション

を、そこにそれは言う:

これは、ドメインオブジェクト(集約ルート、DDDの用語で)がリポジトリへの内部参照を持ち、セッションを開いたままJPAベースの遅延読み込みを使用するのではなく、エンティティおよび値オブジェクトのリストを返すように呼び出すことを意味します。

私の質問は、次のとおりです。レイジーフェッチを使用する最適な解決策は何ですか?

私はこれをどう対処する必要がありますか?

私に例を挙げてもらえますか?事前に

おかげで、

答えて

0

FetchType.Lazy負荷がFetchTypeが言及されているエンティティの要素がonly.youが唯一のトランザクション内でそのelmentを使用する必要がセッション内で使用することができます意味します。

+0

私はレイジーフェッチを含む原則を知っています。はい、Eager Fetchingを設定するとこの問題は修正されました。しかし、なぜDDDの言葉でこのレイジーローディングを使用せず、常にEager Fetchingを使用しますか? Play Frameworkはこの原則をドクターの言うとおりに使用していますか?私は何を使用する必要がありますか? – Aleyango

関連する問題