Я нашел много интересных ответов на эту тему, но ни один из них не является правильным для меня.
Заданная часть Job.java
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "company_employee",
joinColumns = @JoinColumn(name = "job_id"),
inverseJoinColumns = @JoinColumn(name = "employee_id"))
private Set<Employee> employees = new HashSet<>();
и часть Employee.java
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "company_employee",
joinColumns = @JoinColumn(name = "employee_id"),
inverseJoinColumns = @JoinColumn(name = "job_id"))
private Set<Job> jobs = new HashSet<>();
Как это не работает для обеих сторон?
Создание объектов:
Job job = job.builder().build();
jobRepository.save(job);
Employee employee = Employee.builder().jobs(Sets.newSet(job));
employeeRepository.save(employee);
Как я делаю это таким образом - ManyToMany спасла только одна сторона, когда у проверенного сотрудника есть работа, но у работы нет сотрудника.Разве Hibernate не позаботится об этом? `
job.getEmployees = null;
employee.getJobs = { ...job... };
Мне нужно, чтобы это было сделано с обеих сторон, поэтому, когда Сотрудник спасен первым, вы можете добавить его со стороны Работы.MappedBy, Каскад, я думаю, что я попробовал большинство из них.Кроме того - я попытался с дополнительным методом «добавить», но в этом случае он не работает, StackOverflowError ...