Почему после автогенерации таблиц, средствами хибернейт
spring.jpa.hibernate.ddl-auto=create
в базе данных между таблицами нет связей? и как их можно установить?
Вот так выглядят таблицы базы данных:
По сути от юзера в коде наследуются два класса: студент, преподаватель.
у студента к комнате связь многие-ко-многим, у преподавателя: один-ко-многим.
Листинг моделей/сущностей:
@Entity
@Table(name = "rooms")
public class Room {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "name")
String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "teacher_id")
private Teacher teacher;
@ManyToMany(mappedBy = "createdRooms")
private List<Student> students;
}
@Entity
@Table(name = "users")
@Inheritance
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "login")
private String login;
@Column(name = "password")
private String password;
}
@Entity
@DiscriminatorValue("TEACHER")
public class Teacher extends User {
@OneToMany(mappedBy = "teacher",
cascade = CascadeType.ALL,
orphanRemoval = true)
private List<Room> createdRooms;
}
@Entity
@DiscriminatorValue("STUDENT")
public class Student extends User {
@ManyToMany(cascade = {
CascadeType.PERSIST,
CascadeType.MERGE})
@JoinTable(name = "students_rooms",
joinColumns = @JoinColumn(name = "student_id"),
inverseJoinColumns = @JoinColumn(name = "room_id"))
private List<Room> createdRooms;
}
В чем может быть причина? И как ее исправить?