溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處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
          主站蜘蛛池模板: 水城县| 忻州市| 通海县| 家居| 宿迁市| 克山县| 奉贤区| 会昌县| 合江县| 本溪| 吉木乃县| 巫溪县| 双流县| 阿拉善盟| 高清| 达孜县| 息烽县| 德州市| 额济纳旗| 达州市| 南康市| 洞头县| 福鼎市| 大名县| 柘城县| 邢台县| 永修县| 岐山县| 土默特左旗| 湖南省| 保定市| 慈溪市| 垦利县| 玉溪市| 澄城县| 德昌县| 石阡县| 淅川县| 黄浦区| 安顺市| 靖江市|