問題タブ [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.

0 投票する
1 に答える
109 参照

java - View Merge の Java Hibernate セッションで変更が失われますか?

ZKで実装しようとしている Hibernate APP がOpen Session in View Patternあります。Hibernate がスレッドごとにセッションを作成して閉じるという質問がありますが、更新メソッドを使用して実装を開始した 1 つのセッションで [基準と保存または更新] メソッドを使用した複数の操作があります。非常に迅速に悪名高い

以下の場合、私の質問に変更update()しました。merge()

私がStudentクラスを持っていて、学生を更新しようとしているupdate[making sure is not in session avoid the exception]が、後で他の方法で学生が前回とは異なる方法で更新する必要がある場合updatemergingメソッドmerge()が呼び出されます。メソッドがいつ[flush][commit]呼び出され、最初の学生への変更が失われるのか疑問に思っていましたか? 両方の生徒への変更は OK ですか? 何が起こるのですか??

最初の変更studentは損失です。この場合、私は何ができますか?

よろしくお願いします。

0 投票する
1 に答える
377 参照

hibernate - ビューパターンで開いているセッションにサーブレットフィルターを使用する場合、log4j で hibernate クエリをログに記録する

まず、私の質問を読んでくれてありがとう。

私の環境から始めましょう: Primefaces 3.5 Hibernate 4.3.2 Glassfish 3.1.2

私の問題はこれです: log4j (およびそれらのクエリにバインドされたパラメーター) を使用して hibernate が行う SQL クエリをログに記録したい。Open Session in Viewパターンを実装することを決定するまで、ロギングは機能していました。ログには、このフィルターからの情報のみが含まれるようになりました (「データベース トランザクションの開始」など)。

私の log4j.xml は次のようになります。

休止状態からのトレース、情報、およびその他の情報はどこにも出力されません。

ご協力ありがとうございました、

アンドレイ

0 投票する
1 に答える
1276 参照

spring - Hibernate 4 + Spring 3、挿入または更新なし

Hibernate のバグHHH-2763を回避するために、アプリを Hibernate 3 から Hibernate 4 に更新しようとしています。更新します。SQL ロギングをオンにしました。Hibernate 3 では、挿入と更新があります。Hibernate 4 では、挿入と更新はありません。

OpenSessionInViewFilter クラスのcloseSessionメソッドを次のようにオーバーライドすることで、Hibernate 3 で明示的なフラッシュを実行していました。

しかし、Hibernate 4 では、そのメソッドが存在しないため、これはオプションではなくなりました。

セッション ファクトリとトランザクション マネージャーの Hibernate 4 構成は次のとおりです。

(編集) そして、これがの構成ですOpenSessionInViewFilter

私の推測では、フラッシュもコミットもしていません。しかし、なぜ?

0 投票する
1 に答える
1205 参照

java - OpenSessionInViewFilter が WebApplicationContext を見つけられません

OSIVF の構成が一般的な問題点であることはわかっています。この数日間で見つけたすべてのページを読みましたが、この問題を解決するものは何もないようです. 私は自分自身を混乱させることに成功しました。Web アプリは非常に単純なので、この構成を非常にシンプルに保つようにしています。さて、ここにエラーがあります:

web.xml は次のとおりです。

最後に、onepic-servlet.xml の一部を以下に示します。

繰り返しになりますが、このような一般的な問題を再度質問して申し訳ありませんが、これをすべて結び付ける知識が少し欠けているに違いありません。

0 投票する
2 に答える
1965 参照

spring-mvc - context:property-placeholder が使用できるように、Spring アプリケーションコンテキストで OpenSessionInViewFilter を構成することは可能ですか?

初期状況

私の Web アプリケーションは、Maven モジュールmyapp-persistence (.jar)、myapp-model (.jar)、myapp-service (.jar)、およびmyapp-web (.war) で構成され、従来の疎結合の多層構造を取得します。建築。すべてのモジュールは、すべてのサブモジュールの一般的な定義を持つ親POMのみを含む親 Maven モジュールによって結合されます。

特にmyapp-service (.jar) とmyapp-persistence (.jar) は、必要なオブジェクトを含む独自の構成可能な (!) アプリケーション コンテキスト パーツを保持します。両方の jar は、含まれている変数定義を使用してデプロイ可能である必要があります。つまり、jar に変数の具体的な値が含まれていてはなりません。

myapp-service-context.xmlは、サーバー URL の変数を使用してsolrServer Bean を宣言します。

myapp-persistence-context.xmlは、接続変数を使用してdataSourceを定義します。

myapp-web (.war) はmyapp-service (.jar) とmyapp-persistence (.jar) を参照します。myapp-servlet.xmlには、それらのアプリケーション コンテキスト パーツが含まれ、プロパティ ファイルによって宣言された Bean の構成用のプロパティ値が提供されます。context:property-placeholderにより、Spring はメモリ内にアプリケーション コンテキストを作成するときに、すべての変数を具体的な値で初期化します。

開発プロファイルの場合、具体的なmyapp-configuration.propertiesは次のようになります。

この構成は簡単で、ビューなしで機能します。org.springframework.orm.hibernate3.support.OpenSessionInViewFilterが登場すると問題が発生します。

問題の説明

OpenSessionInViewFilterは、ビューがこれらのオブジェクトのコンテンツを表示しようとする場合に、コントローラの処理中に開いているトランザクション内にロードされないオブジェクト グラフのインスタンスを遅延ロードできるようにします ( [1]を参照)。よく説明されるように、このフィルターは、展開記述子web.xmlで宣言されます ( [2]を参照)。

上記のようにmyapp-persistence-context.xmlがmyapp-servlet.xmlに含まれてcontext:property-placeholderが機能する場合、OpenSessionInViewFilterは必要なsessionFactoryを見つけられません。その理由は、Spring が最初にweb.xmlを処理し、次にmyapp -persistence-context.xmlをインポートするmyapp -servlet.xmlを処理するためと思われます。残念ながら、この推測を参照によって証明することはできません。次の例外がスローされます。

通常、異なるアプリケーション コンテキスト パーツは、myapp-servlet.xmlではなくContextLoaderListenerを使用してデプロイメント記述子に含まれます。

残念ながら、この構成では、Spring のcontext:property-placeholderメカニズムが機能しなくなったようです。

目的と疑問

myapp-persistence (.jar) やmyapp-service (.jar) などのモジュールは、 myapp-web (.war)のアプリケーション コンテキストなど、参照コンテキストによってプロパティ ファイルを使用して実行時に構成可能である必要があります。

問題は、Spring アプリケーション コンテキストでOpenSessionInViewFilterを構成してcontext:property-placeholderを引き続き使用できるようにすることは可能ですか?

または、代わりに: アプリケーション コンテキスト パーツがデプロイメント記述子web.xmlに含まれている場合、実行時にアプリケーション コンテキストの変数を Spring によってどのように初期化できますか?

基本的に: 実際にOpenSessionInViewFilterを構成する必要があるのはなぜですか? Spring MVC がデフォルトでビューの遅延読み込みを透過的にサポートしていないのはなぜですか?

予想発言

コンパイル時のプロパティの置換は、ここでは重要ではありません。プロファイル依存プロパティ ファイルは、Maven フィルタリングで既に作成されています。

myapp - persistence ( .jar )とmyapp - service ( _ _ _ _ .jar) - 実際には依存性注入の精神です!