Я пытаюсь сохранить объект JSON в базе данных MySQL весной загрузки. Я знаю, что делаю что-то неправильно, но я не могу понять, что это такое, потому что я довольно новичок в Spring.
У меня есть конечная точка отдыха, где я получаю следующий объект JSON (через HTTP PUT), и мне нужно сохранить его в базе данных, чтобы пользователь мог его позже получить (через HTTP GET).
{
"A": {
"Name": "Cat",
"Age": "1"
},
"B": {
"Name": "Dog",
"Age": "2"
},
"C": {
"Name": "Horse",
"Age": "1"
}
}
Следует отметить, что в приведенном выше случае количество ключей в объекте, может изменяться в связи с этим требованием Я использую HashMap
, чтобы поймать объект в контроллере.
@RequestMapping(method = RequestMethod.POST)
public String addPostCollection(@RequestBody HashMap<String, Animal> hp) {
hp.forEach((x, y) -> {
postRepository.save(hp.get(x));
});
return "OK";
}
Как вы можете видеть в методе, я могу перебрать HashMap
и сохранить каждый объект Animal
в db. Но я ищу способ сохранить всю HashMap
в одной записи. Я прочитал некоторое чтение, и они предлагают мне использовать сопоставление @ManyToMany
.
Может ли кто-нибудь указать мне в направлении сохранения HashMap
по-другому? (или использует @ManyToMany
единственный и правильный способ сделать это?)