單向1 1對映

2022-09-17 01:03:10 字數 3632 閱讀 2207

相像一下乙個員工只屬於乙個部門,站在員工的立場,就成了一對一了。

其實n:1與1:1的差別就是n與1的不同,其實把n變成1不就成了1:1了嗎?怎麼變呢?就是在之前的中加入乙個unique="true",其實這個unique屬於資料庫層次的限制,它將會限制department的id唯一,這樣就直接導致了乙個員工只能屬於乙個部門。

對於單向1:1無中間表的對映,不變的**請參考單向n:1無中間表對映

更改的部分:

<?

xml version="1.0" encoding="utf-8"

?>

>

<

>

<

class

name

="com.longtech.hibernate.domain.employee"

table

="employee"

>

<

id name

="id"

column

="id"

type

="j**a.lang.long"

>

<

meta

attribute

="field-description"

>唯一標識

meta

>

<

generator

class

="native"

/>

id>

<

property

name

="name"

type

="j**a.lang.string"

column

="name"

length

="20"

>

<

meta

attribute

="field-description"

>員工名稱

meta

>

property

>

<

many-to-one

name

="department"

column

="dept_id"

cascade

="all"

unique

="true"

>

many-to-one

>

class

>

>

單向1:1有中間表對映和單向n:1有中間表對映配置類似,改變的有

<?

xml version="1.0" encoding="utf-8"

?>

>

<

>

<

class

name

="com.longtech.hibernate.domain.employee"

table

="employee"

>

<

id name

="id"

column

="id"

type

="j**a.lang.long"

>

<

meta

attribute

="field-description"

>唯一標識

meta

>

<

generator

class

="native"

/>

id>

<

property

name

="name"

type

="j**a.lang.string"

column

="name"

length

="20"

>

<

meta

attribute

="field-description"

>員工名稱

meta

>

property

>

<

join

table

="employ_depart"

>

<

key

column

="empid"

>

key>

<

many-to-one

name

="department"

cascade

="all"

column

="deptid"

unique

="true"

>

many-to-one

>

join

>

class

>

>

另外,還有一種方式就是基於外來鍵的單向1:1關係,想一下,既然1員工對應1部門並且始終是1:1,那麼為什麼要每張表中用乙個欄位來記錄主鍵資訊呢,為什麼不只在一張表中記錄就好了?於是,就有了下面一種配置方式。

<?

xml version="1.0" encoding="utf-8"

?>

>

<

>

<

class

name

="com.longtech.hibernate.domain.employee"

table

="employee"

>

<

id name

="id"

column

="id"

type

="j**a.lang.long"

>

<

generator

class

="foreign"

>

<

param

name

="property"

>department

param

>

generator

>

id>

<

property

name

="name"

type

="j**a.lang.string"

column

="name"

length

="20"

>

<

meta

attribute

="field-description"

>員工名稱

meta

>

property

>

<

one-to-one

name

="department"

>

one-to-one

>

class

>

>

這種方式需要使用標籤,它需要指定乙個name屬性,作為關聯時的屬性名。

Hibernate關係對映 單向關聯XML

多對一關係 在一的一端配置set name必須,key column必須,one to many必須。在多的一端配置many to one name,column必須 property 當column不寫是,預設列名與name相同。type也可省略,由hibernate自動匹配 1 單向 many ...

hibernate 單向一對多對映

好久沒用j2ee開發呢,昨天寫呢乙個hibernate的對映,幾次出現異常,翻呢一遍書熟悉呢一下才搞定,這裡把幾種常用的對映放上來,希望大家方便查詢 一 hibernate 單向一對多對映 乙個team 對應多個student 一 hibernate.cfg.xml public hibernate...

Hibernate對映檔案之單向關聯關係對映

person類 如下 具體參見各類對映關係 address類 如下 public class address implements serializable1 單向n 1關聯person類 如下 public class person1 基於外來鍵的單向n 1關聯系統會在n的一端即person端對映...