淺析Hibernate映射(二)——關係映射(3)

雙向一對一關聯映射html

 

與單向一對一關聯映射同樣,雙向映射依然能夠採用兩種方式實現:一、主鍵關聯;二、惟一外鍵關聯app

 

一、主鍵關聯spa

映射出的關係模型與單向同樣:.net

映射文件與單向的區別在於:須要在Card加入<one-to-one>標籤,指示hibernate將關聯對象User根據主鍵加載上來。<one-to-one>不影響存儲,隻影響加載hibernate

User.hbm.xmlxml

[html]  view plain copy print ?
 
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC   
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  5. <hibernate-mapping package="com.jialin.hibernate">  
  6.   
  7.     <class name="User">  
  8.         <id name="id">  
  9.             <!--採用foreign策略,能夠取得關聯對象的主鍵  -->  
  10.             <generator class="foreign">  
  11.                 <!--property表明要關聯的對象 -->  
  12.                 <param name="property">card</param>  
  13.             </generator>  
  14.         </id>  
  15.         <property name="name" />  
  16.           
  17.         <one-to-one name="card" />  
  18.     </class>  
  19.   
  20. </hibernate-mapping>  

Card.hbm.xmlhtm

[html]  view plain copy print ?
 
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC   
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  5. <hibernate-mapping package="com.jialin.hibernate">  
  6.   
  7.     <class name="Card">  
  8.         <id name="id">  
  9.             <generator class="native" />  
  10.         </id>  
  11.         <property name="cardNo" />  
  12.         <!--<one-to-one>不影響存儲,隻影響加載-->  
  13.         <one-to-one name="person" />  
  14.   
  15.     </class>  
  16.   
  17. </hibernate-mapping>  


二、惟一外鍵關聯對象

映射出的關係模型與單向同樣:blog

映射文件:ip

User.hbm.xml

[html]  view plain copy print ?
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC   
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  5. <hibernate-mapping package="com.jialin.hibernate">  
  6.   
  7.     <class name="Person">  
  8.         <id name="id">  
  9.             <generator class="native" />  
  10.         </id>  
  11.         <property name="name" />  
  12.         <many-to-one name="card" unique="true"></many-to-one>  
  13.     </class>  
  14.   
  15. </hibernate-mapping>  

Card.hbm.xml

[html]  view plain copy print ?
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC   
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  5. <hibernate-mapping package="com.jialin.hibernate">  
  6.   
  7.     <class name="Card">  
  8.         <id name="id">  
  9.             <generator class="native" />  
  10.         </id>  
  11.         <property name="cardNo" />  
  12.         <!--必須指定<one-to-one>  
  13. 標籤中的property-ref屬性爲關係字段的名稱-->  
  14.         <one-to-one name="person" property-ref="card"/>  
[html]  view plain copy print ?
    1. </class>   
    2. lt;/hibernate-mapping>  
相關文章
相關標籤/搜索