У меня есть две таблицы, которые являются студентом и курсом в моем весеннем коде.Я хочу создать таблицу отношений "takeCourse".У меня будет только идентификатор студента и идентификатор курса.Я могу создать таблицу с двумя первичными ключами в своем коде Java, но не могу объявить их как внешний ключ.
Я пробовал это решение Два внешних ключа в качестве первичного ключа , но это не такЯ думаю, что там есть некоторые недостающие части.Поэтому я попробовал это на основе этого решения:
(у сущности студента есть идентификатор, имя, фамилия) (у сущности курса есть идентификатор, имя курсора)
// This is embedded id:
@Embeddable
public class CompositeKey implements Serializable {
public long getSid() {
return sid;
}
public void setSid(long sid) {
this.sid = sid;
}
public long getCid() {
return cid;
}
public void setCid(long cid) {
this.cid = cid;
}
@Column(name="sid")
private long sid;
@Column(name="cid")
private long cid;
}
//This is takeCourse entity code
@Entity
@Table(name="takeCourse")
public class takeCourse implements Serializable {
@EmbeddedId CompositeKey id;
@ManyToMany
@JoinColumn(name = "sid")
public Student getStudent(StudentRepository repo){
return repo.findById(id.getSid());
}
@ManyToMany
@JoinColumn(name = "cid")
public Course getStudent(CourseRepository repo){
return repo.findById(id.getCid());
}
}
Я ожидал создать таблицу с двумя fkкак пк.но результат таков:
создать таблицу take_course (cid int8 не ноль, sid int8 не ноль, первичный ключ (cid, sid))
информация о внешнем ключе отсутствует.
Я хочу, чтобы это было создание таблицы take_course (cid int8 не ноль, sid int8 не ноль, первичный ключ (cid, sid), иностранный ключ sid ссылается на ученика (id), foreigr ключ cid ссылается на курс (id))
Кто-нибудь может увидеть, где я ошибся?