0
스프링 레스트 컨트롤러와 스프링 데이터 JPA를 사용하여 @RequestBody에서 전달 된 엔티티 속성 만 업데이트하는 방법은 무엇입니까?스프링 레스트 컨트롤러와 스프링 데이터를 사용하여 @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=?
스프링 데이터 JPA가 RequestBody를 통해 전달하지 않더라도 JPA에서 company_id를 null로 설정하려고합니다. 하지만 employee_id를 사용하는 데이터베이스의 엔티티가 전달 된 다음 작업을 저장하려고 시도하면 (잘) 작동합니다.
요청 본문을 통해 전달되는 엔티티 속성 만 업데이트하고 싶습니다. 이 시나리오를 어떻게 처리할까요?