問題タブ [interceptor]
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.
hibernate - Hibernate インターセプター: コレクション要素が更新されたときにインターセプトされたエンティティ
次の問題を達成するために Hibernate (...) を設定する方法を知る必要があります。
双方向 (構成) の 1 対多の関連付けがあります (a.bs は Set オブジェクトで、ba は A オブジェクトです)。DB から「a」をロードし、その「bs」の 1 つを更新すると、saveOrUpdate A のときに Hiernate インターセプト A エンティティが必要になります。
コード:
使用事例:
(ミニ) モデルに適切に注釈が付けられているため、変更が実行されます。
問題は、インターセプターがエンティティ B の変更のみを検出し、エンティティ A の変更を検出しないことです。監査情報を更新する必要があるため、A の変更を検出する必要があります。
他の観点は次のとおりです。B を介して A エンティティを取得し、更新する必要があります。実際、BからAを取得できますが、変更は永続化されません...
質問 を単純化すると、インターセプターが B エンティティをインターセプトするときに A エンティティを変更する (日付を設定する) 必要があります。onSave では問題なく動作しますが、onFlushDirty では動作しません。なんで?
これは: B が更新されると、インターセプトされます (onFlushDirty)。onFlushDirty メソッドの本体は、とりわけ、次のことを行います。
したがって、その瞬間に、セッションに接続されている A エンティティがダーティになる必要があるため、傍受アクションを発生させる必要があります...つまり、 onFlushDirty メソッドを再度呼び出す必要があります。私が間違っている?しかし、いずれにせよ、 A.lastModifyDate を更新する必要があります...そしてこれは起こっていません!!!
次に、アプリケーションの実際の動作を示します。
- A オブジェクトを作成します
- B オブジェクトを作成し、それを A に関連付けます
A => A.lastModifyDate は正しい日付です ( OK )
A オブジェクトを作成します
- B オブジェクトを作成し、それを A に関連付けます
- A => A.lastModifyDate は正しい日付です ( OK )
B オブジェクトをロードし、更新して B を永続化します -> A.lastModifyDate は正しい日付です ( OK )
A オブジェクトを作成します
- B オブジェクトを作成し、それを A に関連付けます
- A => A.lastModifyDate は正しい日付です ( OK )
A オブジェクトを読み込み、その B オブジェクトを更新し、A を永続化します -> A.lastModifyDateが正しい日付ではありません( KO )
A オブジェクトを作成します
- B オブジェクトを作成し、それを A に関連付けます
- A => A.lastModifyDate は正しい日付です ( OK )
A オブジェクトをロードし、A のフィールドとその B オブジェクトを更新し、A を永続化します -> A.lastModifyDateが正しい日付ではありません( KO )
A オブジェクトを作成し、それを永続化します。
A オブジェクトをロードし、それに新しい B オブジェクトを関連付け、A を永続化します => A.lastModifyDate は正しい日付です ( OK )
A オブジェクトを作成し、それを永続化します。
- A オブジェクトをロードし、A のフィールドを更新し、それに新しい B オブジェクトを関連付け、A を永続化します => A.lastModifyDate は正しい日付です ( OK )
何か案が?
ありがとう!
castle-windsor - プライベート/保護された方法のためのCastleWindsorInterceptor
キャッスルウィンザーのインターセプターがメソッドをインターセプトするためには、そのメソッドがパブリックであると宣言する必要があるというのは本当ですか?
seam - SEAM: インターセプターでコンポーネントが「注射された」「早すぎる」?
SEAM アプリに次のインターセプターがあるとします。
myMonitor.a() は機能します (そのため、Monitor は正しく挿入されます)、myMonitor.b() は Monitor が既に null であるため失敗します。Seam Docは次のように述べています。
それが起こっていることですか?SEAM にコンポーネントを「まだ」「消毒」するように指示することはできますか? もちろん、XContext.get(..) のようなこともできますが、これはバグなのか、私の側のミスなのか疑問に思っています。ありがとう!
struts2 - 注釈付きの Struts 2 メッセージ ストア インターセプタの使用
現在、Struts 2 アプリケーションを変換して、XML 構成の代わりにコンベンション プラグインと注釈を使用しています。
元の XML は次のようになります。
私が交換したもの
しかし、パラメーターを Message Store Interceptor に渡す方法がわかりません。何かご意見は?
login - Struts1を使用したStruts2インターセプターの実装
Struts 1で作成されたレガシーアプリケーションがあります。追加するように求められた唯一の機能は、いくつかのアクションを保護することです。現在、どのユーザーも自分のやりたいことが何でもできます。アイデアは、すべてのユーザーがデータを表示できるようにすることですが、変更操作をブロックします。つまり、ユーザーがログインする必要のあるデータを変更します。
Struts2にはインターセプターがあることを知っているので、それらを必要なアクションにアタッチし、必要に応じてユーザーをログインページに転送することができます。しかし、Struts 1アプリケーションで同様のことをどのように行うことができますか?
私の最初のアイデアは、独自の抽象的なActionクラスを作成することでした。
次に、認証が必要なすべてのアクションをから変更します
に
次に、ログインフォーム、ログインアクション(認証を実行し、このステータスをセッションに入れる)を追加し、JSPヘッダータイルを変更して、認証ブロックを表示します(例:「あなたは(ログインしていません)/」、ログイン/ログアウト。私が推測するように、これは問題を解決するはずです。
- それでも問題が解決しない場合は、その理由を説明してください。
- これを行うためのより良い(インターセプターのようによりエレガントな)方法はありますか?
前もって感謝します。
nhibernate - NHibernate インターセプター - それは何ですか
NHibernate Interceptor とは何ですか? また、アプリケーションでどのような目的に使用されますか?
また、この記事では、NHibernate を使用するとデスクトップ アプリケーションの起動が遅くなることがわかったので、これを回避するには、構成をファイルに保存し、後で保存したファイルから読み込む必要があります。どうやってやるの?そのチュートリアルには例が見つかりませんでした。
wcf - コンパクト フレームワークの WCF インターセプター
デバイス ID を送信してデバイスを認証するインターセプター レイヤーを WCF サービスに追加したいと考えています。
私はWCFインターセプターに非常に慣れていません。それらを理解するのに時間をかける前に、Compact Framework でも機能するかどうかを知りたいと思います。
それで、WCFインターセプターはコンパクトフレームワークで動作しますか?もしそうなら、私がそれらを調査する際に留意する必要がある特別な考慮事項はありますか. (これを行う方法の C# の例は素晴らしいでしょう!)
Visual Studio 2008 SP1 を使用しています。
spring-mvc - spring 3 mvcはすべてのリクエストを傍受します
こんにちは、グローバル インターセプターを作成し、そこにロケールを設定することは可能でしょうか。
/fr/* を /*?siteLang=fr に書き換える urlrewrite ルールがあります。
パラメータに基づいてロケールを設定する方法の例を見ましたが、それらはすべて同じであり、URL マッピングを使用する必要があります。ロケールインターセプターがどのコントローラー用であっても、各リクエストで呼び出されるようにグローバルに行うことは可能ですか?
私のxmlにはdispatchControllerのようなものはないので、それを使用することはできませんが、アイデアはすべてを傍受することです(何らかの方法で)。
私は基本的に、URI の先頭にロケールを含む URL を持ち、その後に /fr/user/details /de/products/hifi などのようなアプリケーション ビットが続くようにしたいと考えています。
URLを書き換えるという同じ規則を使用し、コントローラー固有の理由でsiteLangを使用しない異なるコントローラー。
ありがとう
nhibernate - 保存時にNHibernateインターセプターが使用されない
監査に使用されるSpring.Net(ASP.NET MVC、fwiwを使用)を使用してHibernateTemplateに設定されているNHibernateインターセプターがあります。ただし、何らかの理由で、genericDAO.Get(id)を呼び出したときにOnLoadメソッドがトリガーされているときに、genericDAO.SaveOrUpdate(object)を使用して何かを保存しようとすると、OnSaveメソッドもOnFlushDirtyインターセプターメソッドも呼び出されません。なぜこれが起こるのか誰もが知っていますか?
VSデバッガー内のメソッドにブレークポイントを設定したので、インターセプターが設定されており、メソッド呼び出しが欠落していないことを確信しています。明らかに、すべてが正しく保存および取得されています。