Spring boot 如何在SpringDataJPA中向现有实体添加新字段/值
如何向现有实体添加新字段、值或属性,并将它们存储在同一个表中Spring boot 如何在SpringDataJPA中向现有实体添加新字段/值,spring-boot,spring-data-jpa,Spring Boot,Spring Data Jpa,如何向现有实体添加新字段、值或属性,并将它们存储在同一个表中 Customer实体已存在,且字段如下 - id - name - lastName 要将联系人号码(如下面的api结构所示)添加到此现有客户实体不需要联系人号码的新实体 预期的请求主体如下所示: { "id": "int auto generated", "name": "String", "lasName&qu
Customer
实体已存在,且字段如下
- id
- name
- lastName
要将联系人号码
(如下面的api结构所示)添加到此现有客户
实体不需要联系人号码的新实体
预期的请求主体如下所示:
{
"id": "int auto generated",
"name": "String",
"lasName": "String",
"contactNumber":
{
"mobile":"long",
"office":"long",
"home":"long"
}
}
如何做到这一点?检查了一些与mapstruct相关的博客,但没有获得正确的解决方案。您可以使用
@embeddeble
:
@Embeddable
public class ContactNumber {
private Long mobile;
private Long office;
private Long home;
// getters, setters...
}
客户实体:
@Entity
public class Customer {
@Id
private Long id;
private String name;
private String lastName;
@Embedded
private ContactNumber contactNumber;
// getters, setters...
}
通过此映射,三列(mobile、office、home
)将添加到Customer
表中
您可以使用(@RequestBody Customer)
参数将客户
与问题中的请求正文一起保存:
@PostMapping(value="/customers")
public void saveCustomers(@RequestBody Customer customer) {
customerRepository.save(customer);
}
有关更多信息,请参阅。
@embeddeble
解决了此问题。