私は2つのモデルがあります:私はそれを挿入した後ResourceVacationためのMongoDBとアップサート問題
@Id
private String id;
private String start;
private String title;
JSON::
は1-ResourceVacation:
@Id
private String resourceID;
private List<Vacation> vacationList;
2-休暇を
{"_id": "foo"、 "_class": "com.test.mod el.ResourceVacation」、 "vacationList":[{ "_id": "1"、 "開始": "ABC"、 "タイトル": "テスト"} ]}
Iがアップサートする必要が私が必要とするresourceIdがすでにResourceVacationに存在する場合は、 "vacationList"をjsonに置き換えます。
ELSE: 私は、次の例外を取得
Vacation vacation = new Vacation("a", "a", "a");
List<Vacation> list = new ArrayList<Vacation>();
list.add(vacation);
ResourceVacation resourceVacation = new ResourceVacation("foo", list);
MongoOperations mongoOperations = mongoConfiguration.getMongoTemplate();
DBCollection db = mongoOperations.getCollection("resourceVacation");
BasicDBObject myQuery = new BasicDBObject("_id", resourceVacation.getResourceID());
BasicDBObject myUpdate = new BasicDBObject("push ", new BasicDBObject("vacationList",
resourceVacation.getVacationList()));
db.update(myQuery, myUpdate);
新しいResourceVacationを挿入します。
java.lang.IllegalArgumentException: can't serialize class com.springway.model.Vacation
私も休暇をupsertする必要があります。 – ericsoco