Thanks for your input, unfortunately it wasn't able to help. I did switch the call from update to saveOrUpdate, but that did not chage the behavior. The id is a natural key, so having unsaved-value="null" will not help. My mappings are set up along the manner you stated. Here they are below. Perhaps you can see something I've missed.
Code:
<class name="com.aegon.us.afp.awdat.dao.model.AWDBizUnit" table="AWD_BIZ_UNIT_REF">
<id name="cd" column="AWD_BIZ_UNIT_CD" type="string">
<generator class="assigned"/>
</id>
<timestamp name="lastUpdateDate" column="RCD_LST_MOD_TS" unsaved-value="null"/>
<property name="desc" type="string" column="AWD_BIZ_UNIT_DSC"/>
<property name="emailOutOfNetwork" type="string" column="ALW_EMAIL_OUT_OF_NTWK_IND"/>
<property name="statusCd" type="string" column="RCD_STS_CD"/>
<property name="createUser" type="string" column="RCD_CRT_USER"/>
<property name="createDate" type="timestamp" column="RCD_CRT_TS"/>
<property name="lastUpdateUser" type="string" column="RCD_LST_MOD_USER"/>
<property name="awdRgnPrtNbr" type="integer" column="AWD_RGN_PRT_NBR" />
<property name="awdRgnName" type="string" column="AWD_RGN_NM" update="false" insert="false" />
<set name="outboundValidSoures" table="OTBND_VLD_SRC" lazy="false" cascade="all-delete-orphan" inverse="true">
<key column="AWD_BIZ_UNIT_CD"/>
<one-to-many class="com.aegon.us.afp.awdat.dao.model.OutboundValidSource" />
</set>
</class>
<class name="com.aegon.us.afp.awdat.dao.model.OutboundValidSource" table="OTBND_VLD_SRC">
<composite-id >
<key-property name="awdBusUnitCd" column="AWD_BIZ_UNIT_CD" type="string"/>
<key-property name="awdSourceCd" type="string" column="AWD_SRC_CD"/>
</composite-id >
<timestamp name="lastUpdateDate" column="RCD_LST_MOD_TS" unsaved-value="null"/>
<property name="createUser" type="string" column="RCD_CRT_USER"/>
<property name="createDate" type="timestamp" column="RCD_CRT_TS"/>
<property name="lastUpdateUser" type="string" column="RCD_LST_MOD_USER"/>
</class>
I do create a transaction and commit as a part of my call. As far as making the FK in the child table nullable. That is outside my ability. The FK also makes up part of the primary key. Besides, its a legacy system and its design is beyond my control.
I hope you see something. This is the first project we have using Hibernate. It relatively simple, but we have a much larger one coming up with some very complex graphs of objects. I would like to take advantage of hibernates ability to determine what is dirty an what is not to save on IO.
Thanks