2012-04-12 13 views
1

私は、日付プロパティを持つマップされたクラスを持っています。私は保存されているものよりも古い場合にのみ、既存のものが更新されるように、このクラスのオブジェクトを保存したい。休止状態の条件付きsaveOrUpdate

どうすればできますか(可能な限りきれいに、効率的に)?

私はこのようなクラスがたくさんあるので、すべてのカスタムHQLを書かないようにしたいと思います。

答えて

0

SpringからHibernateTemplate.saveOrUpdateを見てみてください。それは同じ機能を持っています必要があります。ビッグオープンソース

+0

これについては別の方法がありましたが、これは有望だったと思います。 – Bloodboiler

0

これはJavaでどのように達成されているのか分かりませんが、私はあなたが似たようなことができると確信しています。

FYI、以下のクラスは、NHibernateのは、あなたが(抽象を持ってDefaultSaveOrUpdateEventListenerクラスを拡張し、PerformSaveOrUpdateメソッドをオーバーライドし、この方法では、あなたがそれらの日付プロパティを持つクラスを識別するのに役立ちますカスタムコードを記述することができ

固有のものですこのクラスのすべてのクラスが実装する必要のあるクラス/インターフェイス)を設定してから、このプロパティの値を設定して、SaveOrUpdateメソッドを呼び出します。

次に、Configurationを構築するときにこのリスナーを追加します。これを行う方法については、Hibernateのドキュメントを参照してください。

希望すると、これが役立ちます。