hibernate多表關聯配置

2021-06-16 18:38:28 字數 2360 閱讀 9474

關聯關係對映通常情況是最難配置正確的.我們從單向關係對映開始,然後考慮

雙向關係對映,逐步深入。

單向關聯(參考hibernate reference documentation)

一、多對一(many-to-one)

單向 many-to-one 關聯是最常見的單向關聯關係。

create table person ( personid bigint not null primary key, addressid bigint not null )

create table address ( addressid bigint not null primary key )

二、一對一(one-to-one)

基於外來鍵關聯的單向一對一關聯和單向多對一關聯幾乎是一樣的。唯一的不同就是單向一對一關

聯中的外來鍵字段具有唯一性約束。

create table person ( personid bigint not null primary key, addressid bigint not null unique )

create table address ( addressid bigint not null primary key )

基於主鍵關聯的單向一對一關聯通常使用乙個特定的 id 生成器,然而在這個例子中我們掉換了

關聯的方向:

person

create table person ( personid bigint not null primary key )

create table address ( personid bigint not null primary key )

一對多(one-to-many)

基於外來鍵關聯的單向一對多關聯是一種很少見的情況,我們不推薦使用它。

create table person ( personid bigint not null primary key )

create table address ( addressid bigint not null primary key, personid bigint not null )

我們認為對於這種關聯關係最好使用連線表。

連線表實際上就是把兩表的關係放在另外一張表上,起連線作用,雙向關聯中經常用到。

cascade="all">

二、一對一(one-to-one)

基於外來鍵關聯的雙向一對一關聯也很常見。

首先建立兩張表,關係為個人表 1:1位址表

create table person (

personid bigint not null primary key,

addressid bigint not null unique )

create table address (

addressid bigint not null primary key )

基於外來鍵關聯的一對一關聯對映檔案配置如下:

也可以使用基於主鍵關聯的一對一關聯,就節省了乙個外來鍵字段了,但需要使用特定的 id 生成器。

首先建立兩張表,如下:

create table person (

personid bigint not null primary key

)create table address (

personid bigint not null primary key

)對映檔案配置如下:

person

特說明一下,還有基於連線表的雙向一對一關聯也是可行的,但極為罕見。這裡不作介紹。

三、多對多(many-to-many)

這裡我們使用連線表來表示雙向關聯,意思就是另外建立一張表表示兩表的關係。建立三張表,實踐中我們知道使用者表與角色表的關係的多對

多的,即使用者表 m:n角色表,建表如下:

create table userinfo(

userid number(10) not null primary key,

username varchar2(50) not null,

)create table roleinfo(

rid number(10) not null primary key,

rolename varchar2(50) not null

)//用於關聯使用者表與角色表,這就是連線表

create table userinfo_role_link(

userid number(10),

rid number(10),

primary key(userid,rid)

)user.hbm.xml對映檔案配置如下:

seq_stu

role.hbm.xml對映檔案配置如下:

seq_student

hibernate多表關聯配置

關聯關係對映通常情況是最難配置正確的.我們從單向關係對映開始,然後考慮 雙向關係對映,逐步深入。單向關聯 參考hibernate reference documentation 一 多對一 many to one 單向 many to one 關聯是最常見的單向關聯關係。create table p...

Hibernate關聯 配置總結

自己做的筆記貼上來的,寫的不好大家見諒 1.單向n 1關聯 在n的一端資料表中增加乙個外來鍵列,用於參照主表記錄 column指定外來鍵列名 property ref 當外來鍵參照的是唯一鍵時需要指定 unique 唯一性約束 指定true時則為 單向1 1關聯 2.單向1 1關聯 基於外來鍵的單向...

Hibernate註解配置N N關聯

多對多 通過 manytomany 註解定義多對多關係,同時通過 jointable 註解描述關聯表和關聯條件。其中一端定義為 owner,另一段定義為 inverse 對關聯表進行更新操作,這段被忽略 entity public class employer implements serializ...