Я использую @Putmapping
для обновления объекта. Когда я смотрю на журналы, он удалил отношения. Я не знаю почему, но мне нужна помощь, чтобы понять. Мой код ниже.
У меня есть объект Employee
, который связан с Project
. Я обновляю Employee
, но он удаляет запись из таблицы взаимосвязей.
@PutMapping(path = "/{id}", consumes="application/json")
@ResponseStatus(HttpStatus.OK)
public Employee update(@RequestBody Employee emp) {
return empService.save(emp);
}
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "employee_seq")
@SequenceGenerator(name = "employee_seq", sequenceName = "employee_seq",
allocationSize = 1,initialValue=1)
private long employeeId;
private String firstName;
private String lastName;
private String email;
@ManyToMany(cascade = {CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST},
fetch = FetchType.LAZY)
@JoinTable(name = "project_employee", joinColumns = @JoinColumn(name="employee_id"),
inverseJoinColumns = @JoinColumn(name="project_id"))
@JsonIgnore
private List<Project> projects;
public Employee() {
}
}
@Entity
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "project_seq")
@SequenceGenerator(name = "project_seq", sequenceName = "project_seq",
allocationSize = 1,initialValue=1)
private long projectId;
private String name;
private String stage; //NONSTARTED, COMPLETED, INPROGRESS
private String description;
@ManyToMany(cascade = {CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST},
fetch = FetchType.LAZY)
@JoinTable(name = "project_employee", joinColumns = @JoinColumn(name="project_id"),
inverseJoinColumns = @JoinColumn(name="employee_id"))
@JsonIgnore
private List<Employee> empList;
public Project() {
}
}