2012-03-02 4 views
1

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

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

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

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

もっと良いアプローチがあれば、私はそれについて聞いていただければ幸いです。あなたはエンティティがすでに永続化されているかどうかを確認したい場合は、それが最初のセーブに自動生成されるよう

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

、私はおそらくnull値のためidを確認したい:

+0

興味のあること:ライフサイクルメソッドを呼び出すのはなぜそんなに問題なのですか? – xeraa

+0

そうではありません。しかし、フレームワークがどのように動作するかを考え始めるたびに、私はそれを正しく使用しているかどうかを確かめます。 –

答えて

1

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

+0

いくつかの解決策がありますが、これは間違いなくその1つです。私は一般的な答えは_saveであり、 "再保存"を検出すると思います._助けてくれてありがとう。 –

関連する問題