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
解决了此问题。