1

Mongo と Morphia をマッピングしています。Morphia には、ドキュメント内の更新を変更されたフィールドのみに適用できるようにするための多くの最適化があります。

ありがたいのですが、現時点では、最適化されていないケースが必要です。エンティティを保存したいだけで、どのフィールドが変更されたかを心配する必要はありません。

もちろん、単純に save() を呼び出すこともできますが、これはあたかも新しいオブジェクトを作成しているかのようにライフサイクル メソッドを呼び出します。

おそらくそれが答えです: save() そして、これが新しいエンティティの作成ではなく「再保存」であることを検出するのに十分スマートなライフサイクルメソッドを持っています。

より良いアプローチがあれば、それについて聞いていただければ幸いです。

4

1 に答える 1

1

私の prepersist は次のようになります。

@PrePersist
public void prePersist() {
    creationDate = (creationDate == null) ? new Date() : creationDate;
    lastChange = (lastChange == null) ? creationDate : new Date();
}

エンティティが既に永続化されているかどうかを確認したい場合はid、最初の保存時に自動生成されるため、おそらく null 値を確認します。

于 2012-03-03T14:47:07.503 に答える