2016-05-26 4 views
2

したがって、私は2つのオブジェクトがあると想像してみましょう:コースエクササイズ。コース練習のリストが含まれています。OOPスタイルのHibernate Lazyloading

レイジーローディングが有効になっている、とリポジトリを経由して、私は私が興味コースを取得:

couserRepo.query(new ByNameSpec("courseName")). 

は、今私はコースの演習をアクセスもしたいが、私はcourse.getExerccises()を呼び出すときに、私はMSGを取得し、そのセッションすでに閉じられています。 私はrepoに別のクエリを作成しなければなりません。それは絶対に納得できません。

これはどうすればよいですか?

答えて

3

操作ごとのセッションを開くことは反パターンであることに注意してください。詳細については、http://docs.jboss.org/hibernate/orm/5.1/userguide/html_single/Hibernate_User_Guide.html#session-per-operationを参照してください。

Hibernate org.hibernate.Sessionの範囲は柔軟ですが、すべてのデータベース操作で新しいHibernate org.hibernate.Sessionを使用するようにアプリケーションを設計してはいけません。

私はセッションごとのリクエストパターンを検討する必要があると思います。

+0

Thanks Jakub、nice link! –