0
Spring Rest ControllerとSpring Data JPAを使用して@RequestBodyから渡されたエンティティ属性のみを更新するには?Spring Rest ControllerとSpring Data JPAを使用して@RequestBodyから渡されたエンティティ属性のみを更新するJPA
従業員エンティティ:
@Entity
@Table(name = "employee")
@DynamicUpdate
public class Employee {
@Id
@Column(name = "employee_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer employeeId;
@Column(name = "employee_name")
private String employeeName;
@Column(name = "employee_desgn")
private String employeeDesgn;
@Column(name = "employee_email")
private String employeeEmail;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "company_id", referencedColumnName = "company_id")
private Company company;
}
サービスクラスメソッド:
public Employee updateEmployee(Employee employee) {
return employeeRepository.save(employee);
}
RequestBody:
{
"employeeId":4,
"employeeName":"Paul",
"employeeDesgn":"Lead"
}
休止更新クエリ:
update employee set company_id=?, employee_desgn=?, employee_name=? where employee_id=?
Spring Data JPAはRequestBodyを通過していなくてもcompany_idをnullに設定しようとしていますか? しかし、employee_idを使用してデータベースからエンティティを取得した場合、その作業を正常に保存しようとした場合、
リクエストボディで渡されるエンティティ属性のみを更新したいとします。このシナリオをどのように処理するのですか?