TomcatでSpringでHibernateを使用しています。私はこのトピックに関するJBoss wiki ページを頻繁に参照し、再読してきましたが、これは役に立ちました。しかし、それは私にいくつかの疑問を残します。
リクエストごとにトランザクションを開始するという考えは、私を悩ませます。フィルターを特定のコントローラーに制限できると思います-おそらく、トランザクションを必要とするすべてのコントローラーを疑似「tx」パスまたは何かの下に置きます。しかし、トランザクションが必要かどうかわからない場合にトランザクションを使用するのは悪い考えではありませんか? また、何らかのリクエストで読み取りを行っているだけの場合 (キャッシュから取得される可能性が非常に高い読み取り)、トランザクションを使用しないほうがよいのではないでしょうか?
サービス層でトランザクションを処理する方法について言及している投稿を読みましたが、Spring でこれを行いたいと考えています。では、フィルタ コードはどのようなものになるでしょうか。遅延読み込みのために、ビューでセッションを利用できるようにしたいです。
フィルタを呼び出す
sessionFactory.getCurrentSession()
だけでよい場合、再利用のためにセッション ファクトリに「解放」するにはどうすればよいでしょうか。(トランザクションを使用している場合でも、または何かが表示されると予想していましたsession.close()
。) そのセッションを再利用できることをセッション ファクトリに伝えているのは誰ですか?おそらく
beginTransaction()
、リクエストの期間中、特定のデータベース接続を特定のセッションにバインドする呼び出しでしょうか? それ以外の場合、セッションは必要に応じてプールからデータベース接続をプルしますよね?
私のすべての質問にご理解いただきありがとうございます。
(そして、あなたの答えが Spring のドキュメントへのリンクである場合、あなたは私を泣かせるだけです。あなたはそれを望まないでしょう? もし人々が Spring 関連の質問に答えるのをやめたら、私は本当のお金を払います。仕方。)