zoukankan      html  css  js  c++  java
  • hibernate 一对一 one to one的两种配置方式

    hibernate中one-to-one两种配置方式

    标签: hibernateHibernateone-to-one
     分类:
    [java] view plain copy
     
    1. public class Person {  
    2.     private int id;  
    3.     private String name;  
    4.     private IdCard idCard;  
    5.   
    6.     public Person() {  
    7.     }  
    8.   
    9.     public Person(int id, String name, IdCard idCard) {  
    10.         this.id = id;  
    11.         this.name = name;  
    12.         this.idCard = idCard;  
    13.     }  
    14.   
    15.     public int getId() {  
    16.         return id;  
    17.     }  
    18.   
    19.     public void setId(int id) {  
    20.         this.id = id;  
    21.     }  
    22.   
    23.     public String getName() {  
    24.         return name;  
    25.     }  
    26.   
    27.     public void setName(String name) {  
    28.         this.name = name;  
    29.     }  
    30.   
    31.     public IdCard getIdCard() {  
    32.         return idCard;  
    33.     }  
    34.   
    35.     public void setIdCard(IdCard idCard) {  
    36.         this.idCard = idCard;  
    37.     }  
    38.   
    39. }  
    [java] view plain copy
     
    1. public class IdCard {  
    2.     private int id;  
    3.     private Date usefullLife;  
    4.     private Person person;  
    5.   
    6.     public IdCard() {  
    7.     }  
    8.   
    9.     public IdCard(int id, Date usefullLife, Person person) {  
    10.         this.id = id;  
    11.         this.usefullLife = usefullLife;  
    12.         this.person = person;  
    13.     }  
    14.   
    15.     public int getId() {  
    16.         return id;  
    17.     }  
    18.   
    19.     public void setId(int id) {  
    20.         this.id = id;  
    21.     }  
    22.   
    23.     public Date getUsefullLife() {  
    24.         return usefullLife;  
    25.     }  
    26.   
    27.     public void setUsefullLife(Date usefullLife) {  
    28.         this.usefullLife = usefullLife;  
    29.     }  
    30.   
    31.     public Person getPerson() {  
    32.         return person;  
    33.     }  
    34.   
    35.     public void setPerson(Person person) {  
    36.         this.person = person;  
    37.     }  
    38.   
    39. }  

    one-to-one方式一:

    IdCard.hbm.xml

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
    3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
    4.     <!-- 
    5.         Mapping file autogenerated by MyEclipse Persistence Tools 
    6.     -->  
    7. <hibernate-mapping>  
    8.   
    9.     <class name="com.huawei.domain.IdCard" table="id_card">  
    10.         <id name="id" type="java.lang.Integer">  
    11.             <column name="id" />  
    12.             <generator class="foreign" >  
    13.                 <param name="property">person</param>  
    14.             </generator>  
    15.         </id>  
    16.           
    17.         <property name="usefullLife" type="java.util.Date">  
    18.             <column name="usefull_life"/>  
    19.         </property>  
    20.           
    21.         <one-to-one name="person" constrained="true"></one-to-one>  
    22.     </class>  
    23. </hibernate-mapping>  

    Person.hbm.xml

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
    3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
    4.     <!-- 
    5.         Mapping file autogenerated by MyEclipse Persistence Tools 
    6.     -->  
    7. <hibernate-mapping>  
    8.   
    9.     <class name="com.huawei.domain.Person">  
    10.         <id name="id" type="java.lang.Integer">  
    11.             <column name="id" />  
    12.             <generator class="native" />  
    13.         </id>  
    14.           
    15.         <property name="name" type="java.lang.String">  
    16.             <column name="name" length="5" not-null="false" />  
    17.         </property>  
    18.           
    19.         <one-to-one name="idCard"></one-to-one>  
    20.     </class>  
    21. </hibernate-mapping>  


    one-to-one方式二:

    IdCard.hbm.xml

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
    3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
    4.     <!-- 
    5.         Mapping file autogenerated by MyEclipse Persistence Tools 
    6.     -->  
    7. <hibernate-mapping>  
    8.   
    9.     <class name="com.huawei.domain.IdCard" table="id_card">  
    10.         <id name="id" type="java.lang.Integer">  
    11.         <!--   
    12.             <column name="id" />  
    13.             <generator class="foreign" >  
    14.                 <param name="property">person</param>  
    15.             </generator>  
    16.          -->  
    17.          <column name="id" />  
    18.          <generator class="native" />  
    19.         </id>  
    20.           
    21.         <property name="usefullLife" type="java.util.Date">  
    22.             <column name="usefull_life"/>  
    23.         </property>  
    24.           
    25. <!--         <one-to-one name="person" constrained="true"></one-to-one> -->  
    26.         <many-to-one name="person" column="person_id" unique="true"></many-to-one>  
    27.     </class>  
    28. </hibernate-mapping>  

    Person.hbm.xml
    [html] view plain copy
     
    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
    3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
    4.     <!-- 
    5.         Mapping file autogenerated by MyEclipse Persistence Tools 
    6.     -->  
    7. <hibernate-mapping>  
    8.   
    9.     <class name="com.huawei.domain.Person">  
    10.         <id name="id" type="java.lang.Integer">  
    11.             <column name="id" />  
    12.             <generator class="native" />  
    13.         </id>  
    14.           
    15.         <property name="name" type="java.lang.String">  
    16.             <column name="name" length="5" not-null="false" />  
    17.         </property>  
    18.           
    19.         <one-to-one name="idCard" property-ref="person"></one-to-one>  
    20.     </class>  
    21. </hibernate-mapping>  

    测试:
    [java] view plain copy
     
    1.         Session s = null;  
    2.         try{  
    3.             s = HibernateSessionFactory.getSession();  
    4. //          Person person = (Person)s.get(Person.class, id);  
    5. //          System.out.println(person.getIdCard().getUsefullLife());  
    6.               
    7.             IdCard idCard = (IdCard)s.get(IdCard.class, id);  
    8.             System.out.println(idCard.getPerson().getName());  
    9.               
    10.         } catch (HibernateException e) {  
    11.             e.printStackTrace();  
    12.         }  
  • 相关阅读:
    关于石家庄铁道大学课程信息管理系统详细制作过程
    文件与流课后作业
    动手动脑java异常处理
    【HAOI2010】订货
    传纸条
    至省选の計劃
    P1382 光棍组织
    P1834 种花小游戏
    USACO 2015 December Contest, Gold Problem 2. Fruit Feast
    python操作
  • 原文地址:https://www.cnblogs.com/zhangshitong/p/5939386.html
Copyright © 2011-2022 走看看