如何向Spring Data JPA中的现有实体添加新字段/值



如何将新字段或值或属性添加到现有实体并将它们存储在同一个表中?

Customer实体已经存在,并且字段为

- id
- name
- lastName

要将contactNumber(如下面的api结构所示)添加到现有的Customer实体中。不希望为contactNumber创建新的实体预期的请求正文如下:

{
"id": "int auto generated",
"name": "String",
"lasName": "String",
"contactNumber":
{
"mobile":"long",
"office":"long",
"home":"long"
}
}

如何做到这一点?查看了一些与mapstruct相关的博客,但没有得到适当的解决方案。

您可以使用@Embeddable:

@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 customer)参数在问题中保存Customer和请求体:

@PostMapping(value="/customers")
public void saveCustomers(@RequestBody Customer customer) {
customerRepository.save(customer);
}

更多信息请看这里

最新更新