前言
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...