溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          雪山飛鵠

          溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

          Husband.java
          package com.one2one.bean;


          public class Husband {
              
              
          private int id;
              
          private String name;
              
          private Wife wife;
              
          public int getId() {
                  
          return id;
              }
              
          public void setId(int id) {
                  
          this.id = id;
              }
              
          public String getName() {
                  
          return name;
              }
              
          public void setName(String name) {
                  
          this.name = name;
              }
              
          public Wife getWife() {
                  
          return wife;
              }
              
          public void setWife(Wife wife) {
                  
          this.wife = wife;
              }
              
          }
          Wife.java
          package com.one2one.bean;

          public class Wife {
              
              
          private int id;
              
          private String name;
              
          private Husband husband;
              
          public int getId() {
                  
          return id;
              }
              
          public void setId(int id) {
                  
          this.id = id;
              }
              
          public String getName() {
                  
          return name;
              }
              
          public void setName(String name) {
                  
          this.name = name;
              }
              
          public Husband getHusband() {
                  
          return husband;
              }
              
          public void setHusband(Husband husband) {
                  
          this.husband = husband;
              }
              
          }
          映射文件
          Husband.hbm.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE hibernate-mapping PUBLIC 
              "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
          >
              
          <hibernate-mapping package="com.one2one.bean">
                  
          <class name="Husband" table="husband" catalog="Hibernate_One2One_fk">
                      
          <id name="id" column="id">
                          
          <generator class="native"/>
                      
          </id>
                      
          <property name="name" column="name"/>
                      
          <one-to-one name="wife" class="Wife" property-ref="husband"/>
                  
          </class>
              
          </hibernate-mapping>
          <one-to-one name="wife" class="Wife" property-ref="husband"/> property-ref后的husband為Wife中定義的husband屬性
          Wife.hbm.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE hibernate-mapping PUBLIC 
              "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
          >
              
          <hibernate-mapping package="com.one2one.bean">
                  
          <class name="Wife" table="wife" catalog="Hibernate_One2One_fk">
                      
          <id name="id" column="id">
                          
          <generator class="native"/>
                      
          </id>
                      
          <property name="name" column="name"/>
                      
          <many-to-one name="husband" column="husband_id" unique="true" />
                  
          </class>
              
          </hibernate-mapping>
          <many-to-one name="husband" column="husband_id" unique="true" />
          many-to-one的作用是在wife表中生成一個外鍵husband_id,且唯一,并參照husband表中的主鍵
          用hibernate的hbm2ddl導出的sql
          create table Hibernate_One2One_fk.husband (
                  id 
          integer not null auto_increment,
                  name 
          varchar(255),
                  
          primary key (id)
              )

              
          create table Hibernate_One2One_fk.wife (
                  id 
          integer not null auto_increment,
                  name 
          varchar(255),
                  husband_id 
          integer unique,
                  
          primary key (id)
              )

              
          alter table Hibernate_One2One_fk.wife 
                  
          add index FK37AF119039AEDD (husband_id), 
                  
          add constraint FK37AF119039AEDD 
                  
          foreign key (husband_id) 
                  
          references Hibernate_One2One_fk.husband (id)

          測試示例
          @Test
              
          public void save(){
                  Session session
          =HibernateSessionFactory.getSession();
                  Transaction transaction
          =session.beginTransaction();
                  
          try {
                      transaction.begin();
                      Husband husband
          =new Husband();
                      husband.setName(
          "張三");
                      session.save(husband);
                      Wife wife
          =new Wife();
                      wife.setName(
          "如花");
                      wife.setHusband(husband);
                      session.save(wife);
                      transaction.commit();
                  } 
          catch (HibernateException e) {
                      e.printStackTrace();
                  }
              }
              
              @Test
              
          public void select(){
                  Session session
          =HibernateSessionFactory.getSession();
                  Husband husband
          =(Husband) session.get(Husband.class1);
                  System.out.println(husband.getName());
                  System.out.println(husband.getWife().getName());
              }

          posted on 2010-10-18 14:17 雪山飛鵠 閱讀(6125) 評論(0)  編輯  收藏 所屬分類: Hibernate
          主站蜘蛛池模板: 江陵县| 青州市| 洪江市| 德保县| 故城县| 太湖县| 淅川县| 九龙县| 黎平县| 科技| 塘沽区| 华阴市| 宁蒗| 遵义市| 郧西县| 龙井市| 永宁县| 马山县| 长子县| 新安县| 苗栗市| 凭祥市| 积石山| 民县| 望谟县| 东兰县| 华亭县| 三门县| 芦溪县| 贵定县| 屏东县| 耿马| 闻喜县| 外汇| 广灵县| 前郭尔| 乌恰县| 白朗县| 犍为县| 新昌县| 翁牛特旗|