2012-05-19 25 views
0

如果我有一個像「更新(JsonObject主體)」的調用,並且意圖是採取現有文檔並更新一些文檔,但不是全部,這是如何工作的?在Play Morphia中如何管理更新?

{ 
    _id: "12345", 
    name: "my name", 
    email: "[email protected]", 
    privatefield: "secret data" 
} 

如果上面的是當前存儲的文件和更新只允許包含「名」和「電子郵件」,這怎麼行?

body = { 
    _id: "12345", 
    name: "my name", 
    email: "[email protected]" 
} 

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值。現在我需要手動合併它們。如果更新後的電子郵件值有意爲空,該怎麼辦?合併如何工作?

我感覺我需要手動映射所有這些似乎很反對的東西。

回答