Hibernate one-to-one 共享主鍵

    在項目中由於業務原因要對數據庫中一個表做擴展,由於擴展的內容比較多,於是新建了一張表,表舊錶做一對一關聯,共享其舊錶的主鍵。

 

    貼出個小例子供自己備忘使用

 

   我們這裏用的是表名稱:basic表和extend表

 

   Basic.java 和Basic.hbm.xm如下 

 

   package com.sszd.hibernate;

   public class Basic {

       private int id;
   
       private String feilda;

       private Extend extend;

       public Extend getExtend() {
           return extend;
       } 

       public void setExtend(Extend extend) {
           this.extend = extend;
        }

       public int getId() {
          return id;
       }

       public void setId(int id) {
          this.id = id;
       }

       public String getFeilda() {
         return feilda;
       }

       public void setFeilda(String feilda) {
          this.feilda = feilda;
      }   
}

 

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

  <class name="com.sszd.hibernate.Basic" table="basic">
     <id name="id" column="id">
        <generator class="native"/>
     </id>
     <property name="feilda" column="feilda" type="string"/>
     
     <!-- cascade 表示級聯關係,extend伴隨着basic的操作面操作 -->
     <one-to-one name="extend" class="com.sszd.hibernate.Extend" cascade="all"></one-to-one>
   
  </class>
</hibernate-mapping>

 

 

 

 

Extend.java和Extend.hbm.xml

 

package com.sszd.hibernate;


public class Extend {

    private int id;
   
    private String feilda;
   
    private Basic basic;
   
    public Basic getBasic() {
        return basic;
    }

    public void setBasic(Basic basic) {
        this.basic = basic;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getFeilda() {
        return feilda;
    }

    public void setFeilda(String feilda) {
        this.feilda = feilda;
    }
}

 

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.sszd.hibernate">
  <class name="com.sszd.hibernate.Extend" table="extend">
     <id name="id" column="id">
         <generator class="foreign">
             <param name="property">basic</param>
         </generator>
     </id>
     <property name="feilda" column="feilda"/>
     <one-to-one name="basic" class="com.sszd.hibernate.Basic" constrained="true"></one-to-one>
  </class>
</hibernate-mapping>

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章