【发布时间】:2022-01-26 05:32:59
【问题描述】:
您好,当我尝试使用电子邮件作为外键保存客户详细信息时,地址表中的电子邮件列仍然为空。我也尝试将 joinColum 移动到客户类,但随后它将 Integer Id 存储为外键
@Entity
@Getter
@Setter
@NoArgsConstructor
public class Customer implements Serializable {
@Id
@GeneratedValue
private Integer id;
private String name;
@Column(unique = true)
private String email;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER,mappedBy = "customer")
private Set<Address> addresses;
}
地址类别
@Entity
@NoArgsConstructor
@Getter
@Setter
public class Address implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer addressId;
private String address;
@ManyToOne
@JoinColumn(referencedColumnName = "email")
private Customer customer;
}
Json 请求
{
"name":"someName",
"email":"someEmail",
"addresses":[
{
"address":"exampleAddress1"
},
{
"address":"exampleAddress2"
}
]
}
【问题讨论】:
-
请在您填充和使用这些对象的位置添加您的代码。
-
@PostMapping public ResponseEntity
create(@RequestBody Customer customer) { Customer savedDetails = customerRepository.save(customer); return new ResponseEntity(savedDetails, HttpStatus.CREATED);实际上我正在尝试将 json 请求直接从控制器保存到存储库
标签: sql spring spring-boot jpa