Hi,
Are the following mappings equivalent? They differ in the placement of
the <join> element.
Mapping 1:
<class name="Person" table="persons">
<datastore-identity strategy="identity"
column="DATASTORE_IDENTITY"/>
<inheritance strategy="new-table">
<discriminator strategy="class-name"
column="DISCRIMINATOR"/>
</inheritance>
<join column="EMPID" table="employee_phoneno_type"/>
<field name="personid" column="PERSONID"/>
<field name="firstname" column="FIRSTNAME"/>
<field name="lastname" column="LASTNAME"/>
<field name="middlename" column="MIDDLENAME"/>
<field name="address">
<embedded null-indicator-column="COUNTRY">
<field name="addrid" column="ADDRID"/>
<field name="street" column="STREET"/>
<field name="city" column="CITY"/>
<field name="state" column="STATE"/>
<field name="zipcode" column="ZIPCODE"/>
<field name="country" column="COUNTRY"/>
</embedded>
</field>
<field name="phoneNumbers" table="employee_phoneno_type" >
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
</class>
Mapping 2:
<class name="Person" table="persons">
<datastore-identity strategy="identity"
column="DATASTORE_IDENTITY"/>
<inheritance strategy="new-table">
<discriminator strategy="class-name"
column="DISCRIMINATOR"/>
</inheritance>
<field name="personid" column="PERSONID"/>
<field name="firstname" column="FIRSTNAME"/>
<field name="lastname" column="LASTNAME"/>
<field name="middlename" column="MIDDLENAME"/>
<field name="address">
<embedded null-indicator-column="COUNTRY">
<field name="addrid" column="ADDRID"/>
<field name="street" column="STREET"/>
<field name="city" column="CITY"/>
<field name="state" column="STATE"/>
<field name="zipcode" column="ZIPCODE"/>
<field name="country" column="COUNTRY"/>
</embedded>
</field>
<field name="phoneNumbers" table="employee_phoneno_type" >
<join column="EMPID"/>
<key column="TYPE"/>
<value column="PHONENO"/>
</field>
</class>
JPOX appears to treat them differently. When mapping 1 is used, an
apparent attempt to insert values (nulls) into the employee_phoneno_type
table results in an error: "ERROR 23502: Column 'PHONENO' cannot accept
a NULL value". Mapping 2 executes without error.
-- Michelle