1
私はMorphia
を新しくして、オブジェクトの既存の埋め込みarrayListを更新しようとしています。ここに私のクラスには、次のとおりです。モルフィアに埋め込みオブジェクトリストを更新するには?
@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.customId
が78901
あるaddress.name
を更新する必要があります。 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