四. Hibernate的關聯對映(B)
阿新 • • 發佈:2018-11-13
1.多對多的Java表達
1.使用集合物件表達多對多物件
推薦使用Set
public class EmployeeModel {
private Set<BehaveModel> behaves=null;
}
public class BehaveModel {
private Set<EmployeeModel> employees=null;
}
2.多對多的DB表達
通過關聯表,欄位分別來自關聯的表的主鍵。
每個欄位都是外來鍵,2個欄位聯合作主鍵。
– 員工愛好關聯表
create table oa_employeebehave
(
EMPID varchar (20) references OA_Employee(EMPID),
BNO int(10) references oa_Behave(BNO),
primary key (EMPID,BNO)
);
3.多對多的Hibernate對映
1.XML方式:
<!-- 多對多 -->
<set name="behaves" table="oa_employeebehave">
<key column="EMPID" />
<many-to-many class="BehaveModel" column ="BNO" />
</set>
<!-- 多對多 -->
<set name="employees" table="oa_employeebehave">
<key column="BNO" />
<many-to-many class="EmployeeModel" column="EMPID" />
</set>
- Java Annotation方式實現多對多對映
@ManyToMany
@JoinTable(name="oa_employeebehave",
joinColumns =@JoinColumn (name="EMPID"),
inverseJoinColumns=@JoinColumn(name="BNO")
)
private Set<BehaveModel> behaves=null;
4.一對一的Java表達
class A {
private B b=null;
}
class B {
private A a=null;
}
5.一對一的資料庫表達
(1)PK做FK。
(2) 專門FK指向PK,FK要求唯一性。
6.一對一的Hibernate對映
(1)XML方式對映語法
(2)Java註釋方式對映語法
根據老師課堂筆記整理