@Putmapping в SpringBoot удалить объект отношения - PullRequest
1 голос
/ 29 марта 2020

Я использую @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() {

    }
}
...