多表继承:

Bean:

public class Person implements Serializable{

    private int id ;
    
    private String name ;
    
    private int age ;
}
public class Student extends Person implements Serializable {
    
    private String dream ;
    
    private Date birthday ;
}
public class Teacher extends Person implements Serializable{

    private String job ;
    
    private boolean merry ;
}

xml(在同一个表中,加一个字段来区分类型):

Person.hbm.xml:
<class name = "Person" discriminator-value="p">
        <id name = "id">
            <generator class="native" />
        </id>
        <!-- discriminator 是新建一个列,此列用来区分对象具体的类型 
             discriminator-value 定义插入一个具体的对象的时候,自动向type列中插入指定的值
        -->
        <discriminator column="type" />
        <property name="name" />
        <property name="age" />
        
        <subclass name = "Teacher" discriminator-value="t">
             <property name="job" />
             <property name="merry" />
        </subclass>
        
        <subclass name = "Student" discriminator-value="s">
             <property name="dream" />
             <property name="birthday" />
        </subclass>
    </class>
    

xml(在不同表中):

Person.hbm.xml:
<class name = "Person">
        <id name = "id">
            <generator class="native" />
        </id>
        
        <property name="name" />
        <property name="age" />
        
        <joined-subclass name="Teacher" table="Teacher">
            <key column="pid" />
            <property name="job" />
            <property name="merry" />
        </joined-subclass>
        
        <joined-subclass name="Student" table="Student">
            <key column="pid" />
            <property name="dream" />
            <property name="birthday" />
        </joined-subclass>
        
    </class>