【发布时间】:2021-02-13 23:56:43
【问题描述】:
我有两个相互关联的表,表“用户”和“地址”:
@Entity
@Table(name = "user")
@Data
@AllArgsConstructor
public class User{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@NotNull
@Column(unique = true)
private String user_name;
@Column
private String description;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
protected Set<Address> addresses= new HashSet<>();
}
在另一张桌子上:
@Entity
@Table(name = "address")
@Data
@AllArgsConstructor
public class Address{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@ManyToOne
@JoinColumn(name = "user_id")
protected User user;
private String address;
}
我有这个包含用户数据和他拥有的地址的 json。我需要有一个 Spring Boot rest api 调用,我将接受这个 json。
所以我需要创建一个用户和两个与该用户相关的地址。
{
"user_name": "example",
"description": "this is a user description",
"addresses": [
{
"address": "this is a address 1"
},
{
"address": "this is a address 2"
}
]
}
我做了一个发布请求来创建具有一些地址的新用户:
@PostMapping ("/user/create")
public ResponseEntity post(@RequestBody User user) {
// TO DO
}
我的问题是我不知道如何处理 OneToMany 关系,基本上是创建一个带有地址的用户行?
有人可以通过为此提供解决方案来帮助我吗?我发现了很多关于如何分别在表上添加数据的示例,但没有任何例子是这样的。
有人可以帮我吗,因为我被卡住了。
【问题讨论】:
标签: sql spring-boot hibernate jpa