`
shenshuibomb
  • 浏览: 24455 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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>

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics