歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Hibernate之one-to-one外鍵關聯映射

在hibernate一對一實體映射中,常用有兩種方式,一種就是把一對一看作多對一的一個特例,即通過外鍵參考。

另一種是通過主鍵參考,限制兩個數據表中的主鍵使用相同的值。

po類

Person.java

  1. package po;  
  2.   
  3. public class Person {  
  4.     private int id;          
  5.     private String name;  //姓名   
  6.     public int getId() {  
  7.         return id;  
  8.     }  
  9.     public void setId(int id) {  
  10.         this.id = id;  
  11.     }  
  12.     public String getName() {  
  13.         return name;  
  14.     }  
  15.     public void setName(String name) {  
  16.         this.name = name;  
  17.     }  
  18.       
  19. }  
Card.java
  1. package po;  
  2.   
  3. public class Card {  
  4.     private int id;          //身份證ID   
  5.     private String number;   //身份證號碼   
  6.     private Person person;   //一個身份證號對應一個人   
  7.       
  8.     public int getId() {  
  9.         return id;  
  10.     }  
  11.     public void setId(int id) {  
  12.         this.id = id;  
  13.     }  
  14.     public String getNumber() {  
  15.         return number;  
  16.     }  
  17.     public void setNumber(String number) {  
  18.         this.number = number;  
  19.     }  
  20.     public Person getPerson() {  
  21.         return person;  
  22.     }  
  23.     public void setPerson(Person person) {  
  24.         this.person = person;  
  25.     }  
  26.       
  27.       
  28.       
  29.       
  30. }  
Card.hbm.xml
  1. <hibernate-mapping>  
  2.     <class name="po.Card" table="card">  
  3.         <id name="id" type="integer">  
  4.             <generator class="native" />  
  5.         </id>  
  6.         <property name="number"></property>  
  7.         <!-- 是多對一的一種特例  unique=true設置為唯一關聯 -->  
  8.         <many-to-one name="person" unique="true" column="person"></many-to-one>  
  9.     </class>  
  10. </hibernate-mapping>  
Person.hbm.xml
  1. <hibernate-mapping>  
  2.     <class name="po.Person" table="person">  
  3.         <id name="id" type="integer">  
  4.             <generator class="native" />  
  5.         </id>  
  6.         <property name="name" />  
  7.           
  8.     </class>  
  9. </hibernate-mapping>  
hibernate.cfg.xml
  1. <hibernate-configuration>  
  2.   
  3.     <session-factory>  
  4.        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>  
  5.         <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>  
  6.         <property name="connection.username">root</property>  
  7.         <property name="connection.password">1</property>  
  8.         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>  
  9.         <property name="myeclipse.connection.profile">mysql</property>  
  10.         <property name="show_sql">true</property>  
  11.         <property name="format_sql">true</property>  
  12.         <mapping resource="po/Person.hbm.xml"/>  
  13.         <mapping resource="po/Card.hbm.xml"/>  
  14.     </session-factory>  
  15. </hibernate-configuration>  
Copyright © Linux教程網 All Rights Reserved