2017-01-30 51 views
2

我在玩Netbeans中的德比樣本數據庫。我想創建具有一對多關係的表格。我有coursesstudent。課程應該讓所有學生都將課程放在桌面上,學生應該有他正在學習的課程。到目前爲止,我創建在德比樣本數據庫中創建關係

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我這個映射,學生對象不具有當然屬性作爲整個對象,而只是其作爲一個整數id。

另外,我怎麼能創建課程表多對一的關係?

感謝您的幫助!

回答

1

你們的關係的映射應該是這樣的:

@Entity 
class Course{ 

    @OneToMany(mappedBy = "course") 
    private Set<Student> students; 

} 

@Entity 
class Student 

    @ManyToOne 
    @JoinColumn(name = "course_id") 
    private Course course; 

} 
+0

所以我應該只執行SQL說,創建反向休眠文件,生成映射文件,這增加了POJO類? – Darlyn

+0

當你使用註釋你不需要HBM映射文件..你只需要指定packagesToScan休眠屬性。 –

+0

,除非你不能使用註釋..是這種情況?你也希望從休眠到這裏在啓動時創建數據庫?使用hbm2.ddl設置? –