Here's a basic outline:
Code:
<?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 package="test.tableperhierarchy">
<class name="Contact" table="contact" discriminator-value="base">
<id name="id">
<generator class="native"/>
</id>
<discriminator column="contact_type" type="string"/>
<!-- common properties here -->
<subclass name="CustomerContact" discriminator-value="customer">
<!-- Customer Account and Personal Info here -->
</subclass>
<subclass name="BusinessContact" discriminator-value="business">
<!-- Business Account and Business Info here -->
</subclass>
<subclass name="ClientContact" discriminator-value="client">
<!-- Client Account and Business Info here -->
</subclass>
</class>
</hibernate-mapping>