У меня есть приложение Spring Boot с базой данных Postegre sql. У меня есть две модели с отношением многие ко многим. Первая проблема, с которой я столкнулся, заключалась в том, что @JoinColumn невозможно прочитать или что-то еще, и никаких предложений не было. Так как это необязательно, я удалил его и просто сохранил @JoinTable. Что ж, когда я пытаюсь добавить студента, у которого есть список курсов, обе сущности создаются, но таблица соединения остается пустой, поэтому сопоставление не происходит. Я что-то упустил?
Это модели:
@Entity
@Data
@Table(name = "students")
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@ManyToMany(mappedBy = "students", fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
private Set<Course> courses;
@Entity
@Table(name = "courses")
public class Course {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(name = "title")
private String title;
@JoinTable(name = "courses_students")
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
private Set<Student> students;
Вот как я вызываю метод POST в контроллерах
@PostMapping("/Students")
public Student createStudent(@RequestBody Student student) {
return StudentRepository.save(student);
}
Отправка JSON Объект для студента, у которого есть список курсов, создал обе сущности, но не имеет связи между ними в объединяющей таблице.