私はいくつかの休止状態の関係マッピングチュートリアルを完了しました。それは混乱の種です - 休止状態の関係。Hibernate Joinカラムの注釈は、どのテーブルcoulmnを参照しています
最初にexampleには、studentとdepartmentテーブルの両方にdepartment_idという名前の列があります。学生主体で
、部門エンティティで
@ManyToOne
@JoinColumn(name="department_id")
private Department department;
、テーブルの列が参照@JoinColumnん
@OneToMany(mappedBy="department")
private Set<Employee> employees;
- ?
- deparmentテーブル/エンティティでdepartment_idの名前がidであると仮定した場合、参照はどのように行われますか?
- また、department_id列がStudentエンティティクラスの列として指定されていないのはなぜですか?二exampleで
、私はSTUDENT_IDを使用してstudent_phoneへの接続中に(私が間違っているなら、私を修正)学生がStudent_Phoneを経由して電話に多くのものを必要とすることです。学生主体で
、
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "STUDENT_PHONE", joinColumns = { @JoinColumn(name = "STUDENT_ID") }, inverseJoinColumns = { @JoinColumn(name = "PHONE_ID") })
public Set<Phone> getStudentPhoneNumbers() {
return this.studentPhoneNumbers;
}
私の質問は、それがinverseJoinColumnを使用しているものです。私はinverseJoinColumnisが何とかPhoneテーブルに接続するのに使ったと思っています。しかし、私はしたい
- この逆接続はどのように行われますか?
- phone_id経由でstudent_phoneに接続するようにPhoneに依頼していますか?
上記の2つの例は参考用です。
persistence apiのように、ジョイン列は、マッピング・タイプに応じてターゲット表またはソース表fkを参照します。
マッピングの全体を理解するための簡単な方法があれば役に立ちます(例)。
javadoc:http://docs.oracle.com/javaee/6/api/javax/persistence/JoinColumn.html#name%28%29でよく指定されています。特定のコードについて明確化が必要な場合は、その特定のコードを質問に投稿してください。リンクではありません。 –
リンクありがとうございました。私は今それを通ります。 –