0

「Update(JsonObject body)」のような呼び出しがあり、その意図が既存のドキュメントを取得して、すべてではなくドキュメントの一部を更新することである場合、それはどのように機能しますか?

{ 
  _id: "12345",
  name: "my name",
  email: "me@here.org",
  privatefield: "secret data"
}

上記が現在保存されているドキュメントで、更新に「名前」と「電子メール」のみを含めることが許可されている場合、どのように機能しますか?

body = { 
  _id: "12345",
  name: "my name",
  email: "me@here.org"
}

static public void Update(JsonObject body){
   Gson gs = new GsonBuilder().create();
   MyModel m = gs.fromJson(body, MyModel.class);
   // this call erases "privatefield" from the document
   m.Save();
}

Gson().fromJson(...) 呼び出しを使用すると、privatefield 値がないオブジェクトが作成されます。ここで、それらを手動でマージする必要があります。更新された電子メールの値が意図的に null である場合はどうなりますか? マージはどのように機能しますか?

アンチプレイに見えるこれらすべてのものを手動でマッピングする必要があると感じています。

4

1 に答える 1

0

この問題を解決するために、PlayMorphia の機能をリクエストするイシューを送信しました。

https://github.com/greenlaw110/play-morphia/issues/94

于 2012-07-19T22:02:59.540 に答える