Недавно я задал этот вопрос: Spring Mongodb - Вставить вложенный документ?
И обнаружил, что Spring-Data-MongoDB не поддерживает такое поведение — так что теперь мне нужна работающая альтернатива.
Теперь, чтобы вы не смотрели код на другой странице, я собираюсь вставить его сюда из другого вопроса... Вот мои два POJO:
@Document
public class PersonWrapper {
@Id
private ObjectId _Id;
@DBRef
private Person leader;
@DBRef
List<Person> delegates;
// Getters and setters removed for brevity.
}
public class Person
{
@Id
private ObjectId _Id;
private String name;
// Getters and setters removed for brevity.
}
Теперь то, что я хочу сделать здесь, это отправить объект JSON в моем запросе POST следующим образом:
{
"personWrapper":
{
"_Id":"<ID HERE (MIGHT WANT SQL TO GENERATE THIS DURING CREATE>",
"leader":{
"_Id":"<ID HERE (MIGHT WANT SQL TO GENERATE THIS DURING CREATE>",
"name":"Leader McLeaderFace"
},
delegates:[{...},{...},{...}]
}
}
На этом этапе я хотел бы, чтобы сторона SQL создала необходимые отдельные записи, а затем вставила запись PersonWrapper со всеми правильными внешними ключами для нужных записей наиболее эффективным способом.
Честно говоря, если кто-то из вас думает, что я ошибаюсь в подходе Spring-Data-MongoDB к этому, мне все равно будет интересен ответ, потому что это избавит меня от необходимости переноса настроек моей базы данных. Так что я по-прежнему буду отмечать здесь сообщество spring-data-mongodb.