1. 程式人生 > >四. Hibernate的關聯對映(B)

四. Hibernate的關聯對映(B)

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>
  1. 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註釋方式對映語法

根據老師課堂筆記整理