2017-01-30 9 views
2

Netbeansでderbyサンプルデータベースを使用しています。私は、1対多数の関係を持つ表を作成したい。Derbyサンプルデータベースでリレーションを作成する

私はcoursesstudentです。コースには、このコースをテーブルに載せるすべての生徒がいなければなりません。また、生徒はコースで自分のテーブルを持っていなければなりません。これまでのところ、私はしかし、私はHibernateを使用して、これをマップするとき

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 
); 

を作成し、学生のオブジェクトは、オブジェクト全体としてコースの性質を持っていますが、整数としてだけでそのIDはありません。

また、私はコーステーブルのために多対1リレーションを作成できますか?

ありがとうございました!

答えて

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のhibernateプロパティを指定するだけで済みます。あなたが注釈を使用できない限り、 –

+0

..その場合ですか?また、起動時にデータベースを作成するために休止状態からここに来ることを期待していますか? hbm2.ddl設定を使用していますか? –

関連する問題