- 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>
Hibernate 一张表细化操作及表之间继承关系的映射配置
最新推荐文章于 2020-07-31 18:07:45 发布