我已经在Spring Boot中编写了一个测试应用程序。员工与部门有关系。 CRUD可以工作,但是我不确定我用的是正确的方法。
创建新员工时,我必须发送以下职位请求
"id": 3,
"firstname": "John",
"lastname": "Doe",
"salary": 50000,
"department": {
"id": 2,
"name": "Sales"
}
}
这是员工类别:
@Entity
public class Employee {
@Id
@GeneratedValue
private Long id;
private String firstname;
private String lastname;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "department_id", referencedColumnName="id")
private Department department;
private int salary;
这是EmployeeController中的create方法:
@PostMapping("/employees")
public Employee create(@RequestBody Employee employee) {
return employeeService.add(employee);
}
部门条目已存在。 是否可以在不填写完整关系的情况下创建员工 (部门)? 我只想添加部门编号。但是,如果我这样做,则json数据中的名称字段为空(获取请求)
id 3
firstname "John"
lastname "Doe"
department
id 2
name null
salary 50000
还有更好的方法吗?
答案 0 :(得分:0)
您将实体作为请求主体,这不是正确的方法。您可以将Some VO作为请求对象,然后在服务内转换为Entity。 对于
EmployeeVO{
private String firstname;
private String lastname;
List<Integer> departments;
}
此外,您可以使用Jackson注释,例如 @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL)可忽略未知属性,但不包含空属性。