Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь выполнить ЗАПРОС ПОСТА, например:
curl -H "Content" -X POST -d '{"content":"abc"}' http://localhost:8080/posts
Я получаю новое сообщение, но без данных:
{
id: 4,
content: null,
comment: [ ]
}
У меня есть некоторые предварительно загруженные данные из файла SQL (я включил H2 в моем проекте):
INSERT INTO post(id, content) VALUES (1, 'This is a post')
INSERT INTO post(id, content) VALUES (2, 'This is a post')
INSERT INTO post(id, content) VALUES (3, 'This is a post')
Моя сущность:
@Entity
public class Post {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String content;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "post")
private Set<Comment> comment;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Set<Comment> getComment() {
return comment;
}
public void setComment(Set<Comment> comment) {
this.comment = comment;
}
}
От мой контроллер:
@PostMapping("/posts")
public @ResponseBody String add(@ModelAttribute Post p){
postRepository.save(p);
return "{msg : Resource added }";
}
В моем исследовании этой проблемы я узнал, что вы можете использовать RestController, однако я не использую это в своем примере, так как мой код взят из моего школьного проекта, и учитель хочет, чтобы мы использовать @ResponseBody et c.
Мой метод @PostMapping чего-то не хватает? или это мое логово неверно?