注釈のみを使用して、Hibernate、Spring、および JSF2 でアプリケーションを構築しています。Spring にある OpenSessionInViewInterceptor を利用して、Bean 内で開く可能性のある休止状態のセッションをキャッチするにはどうすればよいですか?
私は、一般的な「ロールのコレクションを遅延して初期化できませんでした: your.Class.assocation セッションまたはセッションが閉じられませんでした」という問題をエレガントに解決しようとしています。別のPOJO内のPOJOのまだ初期化されていないリストから読み取ろうとするときの問題(読み取りたいプロジェクトオブジェクトのリストを含むDAOによって取得されたタグエンティティ)。私はこれを見つけました:
http://www.paulcodding.com/blog/2008/01/21/using-the-opensessioninviewinterceptor-for-spring-hibernate3/
しかし、私の環境ではそれを利用できませんでした。
インターネットは曖昧で役に立たないチュートリアルでいっぱいなので、詳細な回答を提供してください。ステップバイステップの説明が提供されていることを考えると、代替ソリューションにも大いに役立ちます。
質問する
1805 次
1 に答える
3
それは非常に単純であることが判明し、インターセプター、AOP、およびインターネット全体で見られる無数の奇妙さよりもはるかに単純であることが判明しました。このスニペット (2 番目の init-param の私の小さなコメントに注意してください) を web.xml に挿入して、すべての問題を忘れてください。
<!-- Hibernate OpenSession Filter -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>***WhateverTheNameOfYourSessionFactoryBeanIs***</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
于 2010-06-13T22:23:35.070 に答える