Hibernate框架學習之四 關聯對映那些事

2021-09-23 23:04:43 字數 3533 閱讀 3649

前言

hibernate關聯關係與客觀世界中具體的對映關係很類似,在進行資料庫設計的時候常常需要考慮是一對多、多對一等類似的對映關係,這其中涉及資料庫設計方面的知識。對映關係可以分為單向與雙向兩種,具體又包括一對多、多對

一、一對一以及多對多四種。所以總共有八種對映關係。這裡只介紹了xml配置檔案的版本。

下面的配置檔案的配置方式都以下面的兩個持久化類作為模板:

public

class person

public

class address

關聯對映詳細配置

/**

1.多對一單向關聯

name="address"

class="address"

column="address_id"

cascade="all"/>

table="t_person_address">

column="person_id">

key>

name="address"

class="address"

column="address_id"

cascade="all"/>

join>

2.一對一單向關聯

2.1 基於外來鍵的單向一對一關聯

name="address"

class="address"

column="address_id"

cascade="all"

unique="true"/>

table="t_person_address">

column="person_id">

key>

name="address"

class="address"

column="address_id"

cascade="all"

unique="true"/>

join>

2.2 基於主鍵的單向一對一關聯

name="id"

column="person_id"

type="integer">

class="foreign">

name="property">addressparam>

generator>

id>

name="address">

one-to-one>

3.一對多單向關聯

name="addresses"

table="t_address"

cascade="all">

column="person_id"

not-null="true">

key>

class="address"/>

set>

name="addresses"

table="t_person_address"

cascade="all">

column="person_id"

not-null="true">

key>

class="address"

column="address_id"

unique="true">

many-to-many>

set>

4.多對多單向關聯

name="addresses"

table="t_person_address"

cascade="all">

column="person_id"

not-null="true">

key>

class="address"

column="address_id">

many-to-many>

set>

下面是1的一端:

name="addresses"

inverse="true">

column="person_id">

key>

class="address"/>

set>

n的一端:

name="person"

class="person"

column="person_id"

not-null="true"/>

下面是1的一端:

name="addresses"

table="t_person_address"

inverse="true">

column="person_id">

key>

class="address"

column="address_id"

unique="true">

many-to-many>

set>

n的一端:

table="t_person_address">

column="address_id">

key>

name="person"

class="person"

column="person_id"

not-null="true"/>

join>

6.多對多雙向關聯

需要注意的是,兩個集合的key與many元素的column的名稱必須交叉相同

name="addresses"

table="t_person_address"

cascade="all"

inverse="true">

column="person_id">

key>

class="address"

column="address_id">

many-to-many>

set>

name="persons"

table="t_person_address"

cascade="all">

column="address_id" >

key>

column="person_id"

class="person">

many-to-many>

set>

7.一對一雙向關聯

7.1 基於外來鍵雙向關聯

name="address"

property-ref="person">

one-to-one>

name="person"

unique="true"

column="person_id"

not-null="true">

many-to-one>

7.2 基於主鍵雙向關聯

name="address">

one-to-one>

class="foreign">

name="property">personparam>

generator>

name="person">

one-to-one>

*/

以上就是各種對映關係的詳細配置了,在開發中需要掌握的就是這麼多了。

javaEE框架之Hibernate框架概述

一.什麼是框架?框架是軟體的半成品,已經幫你完成了部分功能 把一些不確定的東西,按框架要求,達成相應的功能 二.hibernate簡介 1.hibernate是什麼框架?1 是乙個開源的物件關係對映框架 2 對jdbc進行了非常輕量級的物件封裝 3 將pojo與資料庫表建立對映關係,是乙個全自動的o...

hibernate系列之四

資料庫中表之間的關係 一對一 一對多 多對多 一對多的建表原則 在多的一方建立外來鍵指向一的一方的主鍵 多對多的建表原則 建立乙個中間表,中間表中至少有兩個字段作為外來鍵分別指向多對多雙方的主鍵 一對一建表原則 唯一外來鍵對應 假設一對一中的任意一方為多,在多的一方建立外來鍵指向一的一方的主鍵,將外...

Hibernate框架學習筆記 01

簡單來說 寫程式,使用框架之後,幫我們實現一部分功能,使用框架好處,少寫一部分 實現功能 環境搭建 匯入相關jar包 注意 因為使用hibernate時候,有日誌資訊輸出,hibernate本身沒有日誌輸出的jar包,匯入其他日誌的jar包。還有鏈結資料庫驅動jar包。2.建立實體類 使用hiber...