Я создал две сущности: Project и Employee. В одном проекте может быть несколько сотрудников, в нескольких проектах может быть несколько сотрудников, поэтому я выбрал отношения ManytoMany, поправьте меня, если это неправильно. Поскольку мне нужно получить все проекты, в которых я работаю, и всех сотрудников, которые являются частью одного проекта. Примеры классов сущностей приведены ниже.
@Entity
@Table(name = "projects")
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "project_employee", joinColumns = @JoinColumn(name = "project_id"), inverseJoinColumns = @JoinColumn(name = "employee_id"))
private Set<Employee> employee;
}
@Entity
@Table(name = "employees")
@Getter
@Setter
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToMany(mappedBy = "employee")
@JsonBackReference
private Set<Project> project = new HashSet<Project>();
private String status;
}
Допустим, есть 2 проекта с идентификаторами 1 и 2, 4 сотрудника с идентификаторами 1,2,3,4.
сотрудник 1,2, 3 являются частью первого проекта. Сотрудник 2, 3, 4 являются частью второго проекта.
Сотрудник 2 завершил первый проект, поэтому статус объекта сотрудника должен быть завершен для первого проекта Сотрудник 2 заблокирован во втором проекте, чтобы статус объекта сотрудника должен быть заблокирован для второго проекта
Итак, проблема, с которой я столкнулся, заключается в том, что если я обновляю статус сотрудника 2 для первого проекта, то же самое будет отображаться и для второго проекта, а также наоборот.
Итак, как Чтобы решить эту проблему, нужно ли мне создать отдельную сущность для статуса, добавив сопоставление сотрудников и проекта.