1

dateプロパティを持つマップされたクラスがあります。このクラスのsaveOrUpdateオブジェクトを保存して、保存されているオブジェクトよりも古い場合にのみ、既存のオブジェクトが更新されるようにします。

どうすればよいですか(可能であれば、きちんと効率的に)?

私はこのようなクラスをたくさん持っているので、それらすべてに大量のカスタムHQLを書くことは避けたいと思います。

4

2 に答える 2

0

SpringのHibernateTemplate.saveOrUpdateを見てみてください。それはrequired.biengオープンソースと同じ機能を持っていますあなたは実装のためのコードも見るかもしれません

于 2012-04-12T09:52:31.960 に答える
0

これがJavaでどのように達成されるかはわかりませんが、同様のことができると確信しています。

参考までに、以下のクラスはNHibernate固有です

クラスを拡張しDefaultSaveOrUpdateEventListenerてメソッドをオーバーライドPerformSaveOrUpdateできます。このメソッドでは、Dateプロパティを含むクラスを識別し(このすべてのクラスが実装する必要のある抽象クラス/インターフェイスを持っている)、次の値を設定するのに役立つカスタムコードを記述できます。このプロパティを実行してから、baseSaveOrUpdateメソッドを呼び出します。

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

これがお役に立てば幸いです。

于 2012-04-12T10:04:23.640 に答える