您的位置:首页 > 其它

Hibernate 一张表细化操作及表之间继承关系的映射配置

2008-12-31 10:38 423 查看
Hibernate  一张表细化操作及表之间继承关系的映射配置

我们所做的是对一张表的内容把可以分类的字段提出来放到单独的类中是配置文件和对应类代码更清晰

public class Cgoods {

   private Integer id;  //公用的主键

   private Catg catg;   //所有分类的属性在该类中

public Catg getCatg() {

    return catg;

}

public void setCatg(Catg catg) {

    this.catg = catg;

}

public Integer getId() {

    return id;

}

public void setId(Integer id) {

    this.id = id;

}

}

<component name="catg" class="com.vo.Catg">

<property name="cname" column="cname" type="string">

      </property>

......

</component>

冗余字段的映射文件

<discriminator column="冗余字段名" type="string"></discriminator>  //该字段不出现在映射类

中并放在主键之后

<subclass name="继承类的类名" discriminator-value="指定默认值">  //该标签表示本表的继承关



       <property name="继承类的属性" column="继承类的字段" type="继承类的类型"></property>

</subclass>

<joined-subclass name="继承类的类名"  table="表名">  //该标签表示另一张表的继承关系

   <key column="该字段和父表主键字段一致"></key>

   <property name="继承类的属性" column="继承类的字段" type="继承类的类型"></property>

</joined-subclass>

附:

<class name="com.vo1.JoinPkey" table="join_pkey"> 

        <composite-id name="id" class="com.vo1.JoinPkeyId"> 

            <key-property name="sid" type="java.lang.Integer"> 

                <column name="sid" /> 

            </key-property> 

            <key-property name="bid" type="java.lang.Integer"> 

                <column name="bid" /> 

            </key-property> 

        </composite-id> 

        <property name="name" type="java.lang.String"> 

            <column name="name" length="20" /> 

        </property> 

    </class> 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息