在Play Morphia中如何管理更新?

时间:2012-05-19 08:26:13

标签: playframework morphia

如果我有一个像“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值的对象。现在我需要手动合并它们。如果更新的电子邮件值有意无效怎么办?合并如何运作?

我感觉我需要手动映射所有这些看起来如此反玩的东西。

1 个答案:

答案 0 :(得分:0)

我提交了一个问题来请求PlayMorphia中的功能来解决此问题:

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