<hibernate-mapping default-access="field" default-cascade="refresh,persist" default-lazy="false">
<class name="com.myapp.entities.MyEntity" table="MYENTITY">
<id name="id" column="id" access="property" type="integer" />
<property name="name" column="name" type="string" length="250" />
<bag name="myOtherEntities" inverse="true" lazy="true" fetch="subselect" cascade="all-delete-orphan">
<key column="MyEntity" foreign-key="none" />
<one-to-many class="com.myapp.entities.MyOtherEntity" />
</bag>
</class>
</hibernate-mapping>
<class name="com.myapp.entities.MyAbstractOtherEntity" table="MYABSTRACTOTHERENTITY" abstract="true"
discriminator-value="null" >
<id name="id" column="id" access="property" type="integer" />
<discriminator column="TYPE" type="integer" force="true" />
<many-to-one name="myEntity" column="myEntity" class="com.myapp.entities.MyEntity" lazy="false" fetch="select" cascade="none"/>
</class>
<subclass name="com.myapp.entities.MyOtherEntity" extends="com.myapp.entities.MyAbstractOtherEntity"
discriminator-value="2" lazy="false">
<property name="name" column="name" type="string" length="250" />
</subclass>