問題タブ [open-session-in-view]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ビューでの Hibernate Open Session が悪い習慣と見なされるのはなぜですか?
また、LazyLoadExceptions を回避するために、どのような代替戦略を使用していますか?
ビューで開いているセッションには次の問題があることを理解しています。
- 異なる jvm で実行される階層化されたアプリケーション
- トランザクションは最後にのみコミットされ、ほとんどの場合、前に結果が必要になります。
しかし、アプリケーションが単一の vm で実行されていることがわかっている場合は、オープン セッション イン ビュー戦略を使用して問題を緩和してみませんか?
java - OSIVパターン-賛否両論?OSIVとビューに関する一般的な質問
私はWebサイトプロジェクトの計画段階にあり、OSIVに移行し、dao(eao)/ dto(既存のプロジェクトにdao / dtoを使用)を使用しないかどうかを決定しています。
OSIVを使用して、ビューでエンティティにアクセスできるようにする必要があるかどうか疑問に思っています(たとえば、struts2を使用すると、エンティティを値スタックにプッシュして、ビューテンプレートでOGNLを使用できます)
OSIVで成功した人はいますか?ビューからエンティティに直接アクセスできるようにしましたか?
ありがとう
(ところで:OSIVが有効なタグではないことに驚いています)
asp.net - Spring.NET + NHibernate - OpenSessionInView を使用した複数の (個別の) データベース
私の Web アプリケーションには、2 つのまったく異なるデータベースがあります。1 つは主に CMS によって使用され、そこから同じ Web サイトの非 CMS ページに関するページ情報を取得したいと考えています。もう 1 つはまったく異なるデータを含んでいます。
Spring.NET の Open Session In View モジュールをこれらのデータベースの両方に複数のセッション ファクトリで使用することは可能Spring.Data.NHibernate.LocalSessionFactoryObject
ですか?
google-app-engine - PersistenceManagerとOpenSessionIn View
私のJavaスキルは少し錆びていて、GoogleAppEngine環境のサーブレットから呼び出されたPersistenceManagerのOpenSessionInViewパターンをどのように実装できるのか疑問に思っています。
PersistenceManagerFactoryを処理するシングルトンがいくつかありますが、サーブレット呼び出しごとに「新しい」PersistenceManagerを取得するにはどうすればよいですか。
ビジネスクラスが同じPersistenceManagerを使用するリポジトリにアクセスし、常に(1つのサーブレットリクエスト内で)アクセスできるようにしたい。
今のところ、サーブレット要求ごとに、シングルトンへの最初の呼び出しが行われたときに新しいPersistenceManagerを初期化する方法を理解できません...
助けてくれてありがとう。
java - hibernate 'open session in view' と非同期タスク
jsf/icesfaces アプリケーションに Open Session in View パターンを利用しています。いつものように、サーブレット フィルターは、「Web サーバー スレッド」の最初と最後ですべての休止状態セッションを開いたり閉じたりします。
私の問題は、たとえば非同期タスクを使用していることです。データベースからオブジェクトの大きなリストをロードします。したがって、タスクを実行する新しいスレッドを「手動で」作成しています。
今私の質問:そのような非同期タスクの休止状態セッションを処理する最良の方法は何ですか? スレッド自体で手動でセッションを作成する必要がありますか、それともスレッド用のサーブレット フィルターのようなもの (スレッドの開始時にセッションを開き、終了時にセッションを閉じるもの) がありますか?
ベストプラクティスなどに感謝します。ありがとうございました。
スレッドを作成するコードは次のとおりです。
java - JTA トランザクションと Open-Session-In-View の Hibernate Session スコープ
JTA
H でトランザクションを使用することは、セッション スコープに関して をibernate
使用することと対照的であると言うのは正しいですか?
私が収集できたものから、トランザクションのセッションスコープはトランザクションです(主にこのリンクに基づいています)一方、パターンではセッションのスコープはリクエストであり、複数のトランザクションを含めることができます。Open-Session-In-View
JTA
Open-Session-In-View
最初に理解し、次に を使用する際のセッション処理の責任者が「誰」であるかを確認するよう求めていJTA
ます。
現在、 を使用する場合、セッションの開始、取得、および終了を処理Open-Session-In-View
するクラスがあります ( 経由)。
使用に切り替えると、上記のセッション アクションが処理されますか? (おそらく私の呼び出し userTransaction.begin,userTransaction.rollback の派生物として)HibernateUtil
ThreadLocal<Session>
JTA
Hibernate
ところで、トランザクションJTA
を調整する必要があるため、これは一般的なベストプラクティスの「JTA を使用する」質問ではありません。Hibernate
JMS
EHCache
イッタイ
hibernate - OpenSessionInViewFilter パラダイムを使用した休止状態の統合テスト
ZKOSS と呼ばれる ria テクノロジでスプリングと休止状態を使用し、OpenSessionInViewFilter パラダイムを使用します。
次のような機能をテストするための統合テストがあります
1) エンティティが UI にロードされます (遅延ロードされたエンティティがあります)
2) UI で更新が行われます -- (テストでは、UI は一連のセッター メソッド呼び出しによって複製されます)
3) 更新ボタンが押され、エンティティが更新されます
多くの場合、私のテストはパスします。
しかし、実際にアプリケーションを使い始めると、遅延読み込み例外が発生します。
1) エンティティが UI に読み込まれます -- セッション 1 に読み込まれます (プロキシはセッション 1 を指します)
2) 更新は UI で行われます -- (テストでは、UI は一連のセッター メソッド呼び出しによって複製されます)
3) 更新ボタンを押すとエンティティが更新されます -- (遅延ロードされたエンティティにアクセスしようとします)、遅延ロード例外が発生します
統合テストでそのような例外をキャッチしたいのですが、アイデアはありますか? ...ここで私のアプローチは正しいですか?
ありがとう
java - Session.close() は Spring openSessionInView に影響しますか?
openSessionInView
web.xmlにフィルターがあります。
そしてallowCreate
、HibernateDaoSupport のプロパティを に設定しましたtrue
。getSession
セッションを取得し、トランザクションの後にセッションを閉じると、データベース操作ごとに次のようになります。
では、このセッション クローズは で問題を引き起こしますopenSessionInView
か?
別の質問: これはさまざまな休止状態操作を行う良い方法ですか? 上記のコードでは、エンティティUser
にフェッチ プロファイルがあります。
ありがとうございます。
ajax - 休止状態でWicketドロップダウンの編集画面でajax-lookupを行う方法は?
私は次の構造を持っています:
クラス A { B 値 }
クラスB {}
それらの間の関係は Hibernate で双方向にマッピングされるため、b.getListOfA() を使用して、B を参照しているすべての A を取得し、その逆も同様です。
クラス A を編集するための編集画面を持つ Wicket アプリケーションがあります。この画面は、DataRowProvider が提供するモデル (LoadableDetachableModel) を使用して DataTable から初期化されます。ajax を使用していないときは、完全に細かいドロップダウン リスト (標準のウィケット コンポーネント) を取得できます。
今、DropDownChoice を AutoCompleteTextBox にしようとしています。それはうまく機能し、Bを選ぶことができ、Aのモデルに正しく設定されています。
しかし、編集した A のインスタンスを保存しようとすると、休止状態の例外が発生します。
org.hibernate.NonUniqueObjectException: 同じ識別子値を持つ別のオブジェクトが既にセッションに関連付けられています
Spring の OpenSessionInView フィルターと saveOrUpdate メソッドを使用して、オブジェクトを保存します。
ヒントはありますか?手がかり?デバッグのヒント?
java - OpenSessionInViewFilterにもかかわらずLazyInitializationException
スタックトレース自体にフィルターが表示されているにもかかわらず、Spring / MVC 3.0 /Hibernate3.5アプリケーションで次のLazyInitializationExceptionがランダムに発生しているようです。私が何を調べるべきかについて何か考えはありますか?
からweb.xml
:
更新、SessionFactoryBean
:の定義を追加