我正在 Netbeans 中使用 derby 示例数据库。我想创建具有一对多关系的表。
我有类(class)
和学生
。 Course 应该在其表中包含所有参加该类(class)的学生,并且学生应该在其表中包含他正在参加的类(class)。到目前为止我创建了
CREATE TABLE Course
(
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
name VARCHAR(50) NOT NULL,
CONSTRAINT primary_key PRIMARY KEY (id)
);
CREATE TABLE Student
(
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
name VARCHAR(50) NOT NULL,
surname VARCHAR(50) NOT NULL,
faculty VARCHAR(50) NOT NULL,
course_id INTEGER NOT NULL,
CONSTRAINT student_pk PRIMARY KEY (id),
CONSTRAINT student_fk FOREIGN KEY (course_id) REFERENCES course
);
然而,当我使用 Hibernate
映射它时,学生对象没有作为整个对象的 course 属性,只有它的 id 作为整数。
另外,如何为类(class)表创建多对一关系?
感谢您的帮助!
最佳答案
您的关系映射应如下所示:
@Entity
class Course{
@OneToMany(mappedBy = "course")
private Set<Student> students;
}
@Entity
class Student
@ManyToOne
@JoinColumn(name = "course_id")
private Course course;
}
关于java - 在 derby 示例数据库中创建关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41934135/