相像一下乙個員工只屬於乙個部門,站在員工的立場,就成了一對一了。
其實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,那麼為什麼要每張表中用乙個欄位來記錄主鍵資訊呢,為什麼不只在一張表中記錄就好了?於是,就有了下面一種配置方式。
<?這種方式需要使用標籤,它需要指定乙個name屬性,作為關聯時的屬性名。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
>
>
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端對映...