我应该如何构造JSON POST,后端上的控制器和POJO类?
这是用于Twitter克隆的,因此用户可以具有多个tweet等
开机自检
{
"tweet": "Sew one button, doesn't make u a tailor",
"user": "Alex"
}
推特控制器
public Tweet createTweet(@RequestBody Tweet tweet) {
return tweetRepository.save(tweet);
}
推文类
@Table(name = "tweets")
public class Tweet {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne(cascade = CascadeType.PERSIST)
private User user;
...
用户类别
@Table(name = "custom_user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "tweet_id")
private List<Tweet> tweet = new ArrayList<>();
这是我得到的答复
{
"id": 1,
"user": {
"id": 2,
"name": "Alex",
"tweet": []
},
"tweet": "Sew one button, doesn't make u a tailor"
}
编辑:
如果我在用户端点上执行GET,这就是我所得到的(应该包括相关的推文)
[
{
"id": 2,
"name": "Alex",
"tweet": []
}
]
答案 0 :(得分:3)
这里:
{
"id": 1,
"user": {
"id": 2,
"name": "Alex",
"tweet": []
},
"tweet": "Sew one button, doesn't make u a tailor"
}
从外观上看,您的Tweet对象具有tweet属性,而User对象具有一个数组,该数组映射与该用户相关的每个tweet,该示例上当前为空。
在我看来,您在Tweet和用户之间的双向映射上很像一个问题。考虑对双向关系使用mappedBy属性。