7

これは簡単な質問だと思いますが、私のグーグルはこれに弱いです。

生成されたIDとカスケードに関して、次のリンクで説明されている問題がありました。

https://www.hibernate.org/hib_docs/nhibernate/html/example-parentchild.html(下部に向かって)

インターセプターの提案された方法を使用して修正しました。すべてが機能しているように見えるので、私は幸せです。

とはいえ、次のようなメソッドからの戻り値の重要性が何であるかはわかりません。

    public override bool OnLoad(object entity, object id, object[] state, string[] propertyNames, IType[] types)
    {
        if (entity is Persistent) ((Persistent)entity).OnLoad();
        return false;
    }

    public override bool OnSave(object entity, object id, object[] state, string[] propertyNames, IType[] types)
    {
        if (entity is Persistent) ((Persistent)entity).OnSave();
        return false;
    }

どちらの場合もfalseが返されます。

NHibernate Interceptorsについてグーグルで検索すると、その書き方の例がたくさんあります。代わりにtrueを返すものもあります(http://www.lostechies.com/blogs/rhouston/archive/2008/03/27/creating-a-timestamp-interceptor-in-nhibernate.aspx)。ここで何が違うのかわかりません。私のコードは機能していますが、インターセプターは私には役立つように思われるので、よりよく理解したいと思います。

4

2 に答える 2

5

戻り値は、インターセプターメソッドで状態パラメーターが変更されたかどうかを示す必要があると思います。そうです-現時点でグーグルするのは難しいです-NHibernateサイトは最近移動し、グーグルは以前ほど有用な情報を見つけていないようです。

于 2009-05-12T21:02:23.043 に答える
0

ヒューイ、

この投稿を読んでください。私は.netプログラマーではありませんが、この投稿は非常に役立ちます。

http://knol.google.com/k/fabio-maulo/nhibernate-chapter-11/1nr4enxv3dpeq/14#

第11章インターセプターとイベントNHibernate内で発生する特定のイベントにアプリケーションが反応すると便利なことがよくあります。これにより、特定の種類の汎用機能の実装、およびNHibernate機能の拡張が可能になります。

11.1。インターセプターIInterceptorインターフェースは、セッションからアプリケーションへのコールバックを提供し、アプリケーションが永続オブジェクトのプロパティを保存、更新、削除、またはロードする前に検査および/または操作できるようにします。これの1つの可能な使用法は、監査情報を追跡することです。たとえば、次のIInterceptorは、IAuditableが作成されたときにcreateTimestampを自動的に設定し、IAuditableが更新されたときにlastUpdateTimestampプロパティを更新します。

それがもう少しあなたを啓発することを願っています。

于 2009-05-12T20:45:45.533 に答える