Spring-Boot отношение многих ко многим - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть приложение 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 Объект для студента, у которого есть список курсов, создал обе сущности, но не имеет связи между ними в объединяющей таблице.

...