Hibernate继承关联关系映射之union-subclass, 以这种方式处理的继承关联关系映射会将每一个具体子类映射为数据库中的一张数据表,而父类则不会有数据表映射。因为除去配置文件的方式不同之外,其他部分没有变化,所以在这里我就只贴出相关配置文件的改动之处,如对代码等有不了解之处,可参见前文,有详细描述,也可以参见我在最后附上的源码。
配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping default-access="field"> <class name="com.orm.model.Person" table="person" abstract="true"> <id name="id" column="id" type="java.lang.Integer"> <generator class="increment"/> </id> <property name="name" column="name" type="java.lang.String"/> <union-subclass name="com.orm.model.Male" table="male"> <property name="make" column="make" type="java.lang.String"/> </union-subclass> <union-subclass name="com.orm.model.Female" table="female"> <property name="maked" column="maked" type="java.lang.String"/> </union-subclass> </class> </hibernate-mapping>
测试结果截图