1
我是Morphia
的新手,嘗試更新對象的現有嵌入式arrayList。這裏是我的課:如何更新morphia中的嵌入對象列表?
@Entity
public class Student {
@Embedded private List<Address> address;
private String name;
private Long id;
... getter and setter .. methods
}
@Embedded
public class Address {
private Long customId;
private String name;
... getter and setter .. methods
}
Json
對於上述類:
{
"student":{
"address": [{
"customId": "123456",
"name": "Jack"
}, {
"customId": "78901",
"name": "sam"
}],
"name": "Teacher",
"id" : 1234567890
}
我必須更新address.name
其中address.customId
是78901
。我試圖按照Morphia
文檔,但找不到任何東西。
我想先刪除元素78901
address.customId
然後將數據追加到現有的列表中。爲了去除數據我這樣做:
UpdateOperations<Student> ops;
Query<Student> updateQuery = datastore.createQuery(Student.class).filter("id", 1234567890);
ops = datastore.createUpdateOperations(Student.class).disableValidation().removeAll("address", new BasicDBObject("customId", 78901));
上面的代碼是成功刪除預期數據,但我不知道如何將更多的數據添加到現有的列表。任何幫助將是可觀的。謝謝
爲什麼不直接操縱java列表並將實體保存到數據庫? – c4k