Вопрос по поводу many to many в hibernate

224
24 июля 2017, 13:14

Здравствуйте. У меня есть 2 сущности.

@Getter
@Setter
@Entity
@Table(name = "student")
public class Student {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    @Column(name = "name")
    private String name;
    @ManyToMany(mappedBy = "students")
    private List<Teatcher> teatchers = new ArrayList<Teatcher>();
}

и

@Getter
@Setter
@Entity
@Table(name = "teatcher")
public class Teatcher {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    @Column(name = "name")
    private String name;

    @ManyToMany(cascade =  CascadeType.ALL)
    @JoinTable(name = "student_teatcher"
            , joinColumns = {@JoinColumn(name = "teatcher_id")}
            , inverseJoinColumns = {@JoinColumn(name = "student_id")})
    private List<Student> students = new ArrayList<Student>();
}

Вот так я их заполняю:

    Teatcher teatcher1 = new Teatcher();
    teatcher1.setName("teatcher1");
    Student student1 = new Student();
    student1.setName("student1");
    student1.getTeatchers().add(teatcher1);
    teatcher1.getStudents().add(student1);

У меня появляются записи во всех 3ех таблицах (student, student_teatcher, teatcher), только если сохраняю так:

objectService.save(teatcher1);

И появляются записи только в одной таблице (student), когда я сохраняю так:

objectService.save(student1);

Почему, когда я сохраняю teatcher, появляются записи во всех 3ех таблицах(student, teatcher, student_teatcher), а если student, то только в таблице student. Я попробовал поиграться с cascade и mappedBy, но у меня ничего не выходит.

READ ALSO
Как определить какой был нажат элемент View?

Как определить какой был нажат элемент View?

Попробую объяснитьЗначит добавляю с помощью inflater картинки на экран

289
Не приходят уведомления Android

Не приходят уведомления Android

ЗдравствуйтеПытаюсь учить разработку приложений под Android устройства

236
java sqlite PreparedStatement не возвращает результат

java sqlite PreparedStatement не возвращает результат

Не происходит вход в тело цикла while при использовании первого запроса (rs: колонок 2, строк 0)Оба запроса рабочие, проверены в SQLiteStudio

221
Не работает валидация формы на jquery

Не работает валидация формы на jquery

Не работает валидация формы на jqueryНе могу понять почему

237