一、把映射关系放到一张数据表上
1 <?xml version='1.0' encoding='utf-8'?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 <hibernate-mapping package="com.sdkj.hibernate.domain.jicheng"> 6 <class name="Animal" table="h_animal" schema="678" discriminator-value="animal"> 7 <id name="id"> 8 <column name="id" /> 9 <generator class="native"/> 10 </id> 11 <discriminator column="type" type="java.lang.String" /> 12 <property name="name" column="name"/> 13 <property name="sex" column="sex"/> 14 15 <subclass name="Bird" discriminator-value="bird"> 16 <property name="height"/> 17 </subclass> 18 <subclass name="Pig" discriminator-value="pig"> 19 <property name="weight" /> 20 </subclass> 21 </class> 22 </hibernate-mapping>
二、每个实体类创建一张表,父类拥有公共属性,子类拥有独特属性+外键约束
1 <?xml version='1.0' encoding='utf-8'?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 <hibernate-mapping package="com.sdkj.hibernate.domain.jicheng"> 6 <class name="Animal" table="h_animal" schema="678"> 7 <id name="id"> 8 <column name="id" /> 9 <generator class="native"/> 10 </id> 11 <property name="name" column="name"/> 12 <property name="sex" column="sex"/> 13 14 <joined-subclass name="Bird" table="bird" schema="678"> 15 <key column="bid" /> 16 <property name="height" column="height"/> 17 </joined-subclass> 18 <joined-subclass name="Pig" table="pig" schema="678"> 19 <key column="pid"/> 20 <property name="weight" column="weight"/> 21 </joined-subclass> 22 </class> 23 </hibernate-mapping>
三、每个实体类生成一张表,每张表都有自己的属性和父类的公共字段(了解)
1 <?xml version='1.0' encoding='utf-8'?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 <hibernate-mapping package="com.sdkj.hibernate.domain.jicheng"> 6 <class name="Animal" table="h_animal" schema="678"> 7 <id name="id" type="java.lang.String"> 8 <column name="id"/> 9 <generator class="uuid2"/><!-- hibernate5废弃了uuid 使用uuid2的话主键必须时String类型 --> 10 </id> 11 <property name="name" column="name"/> 12 <property name="sex" column="sex"/> 13 14 <union-subclass name="Bird" table="bird" schema="678"> 15 <property name="height" column="height"/> 16 </union-subclass> 17 <union-subclass name="Pig" table="pig" schema="678"> 18 <property name="weight" column="weight"/> 19 </union-subclass> 20 </class> 21 </hibernate-mapping>
总结
本文来自博客园,作者:荣慕平,转载请注明原文链接:https://www.cnblogs.com/rongmuping/articles/16122049.html