the following somewhat abbreviated mapping work
btw the strategy you described is called "Table per class hierarchy"

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
        assembly="NHTest" namespace="NHTest.Model" auto-import="true">

        <class name="ApplicationContact" table="contacts">
                <id name="Id" column="Id">
                        <generator class="native" />
                </id>

                <discriminator type="string" formula="case when PersonName is 
not
null then 0 else 1 end" />
                <many-to-one name="Application" column="ApplicationId" not-
null="true" />

                <subclass name="IndividualContact" discriminator-value="0">
                        <property name="PersonName" column="PersonName" 
not-null="true" />
                </subclass>

                <subclass name="GroupContact" discriminator-value="1">
                        <property name="GroupName" column="GroupName" 
not-null="true" />
                </subclass>
        </class>

        <class name="Application" table="application">
                <id name="Id" column="Id">
                        <generator class="native" />
                </id>

                <bag name="Contacts" cascade="all-delete-orphan" inverse="true">
                        <key column="ApplicationId" />
                        <one-to-many class="ApplicationContact"/>
                </bag>
        </class>
</hibernate-mapping>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to