Something else which just bit me:
- Under composite-id section, explain that when specifying the many-to-one mapping of a composite class, that the order of the columns must match the order specified in the composite-id definition
For instance:
Code:
<class name="CompositeClass" table="CompositeClasses">
<composite-id>
<key-property name="col1" column="Col1" />
<key-property name="data2" column="Data2" />
</composite-id>
</class>
<!-- mapped class that will fail in loading CompositeClass -->
<class name="FailedBusinessObject" table="FailedBusinessObjects">
<many-to-one name="compositeClass">
<column name="Data2" />
<column name="Col1" />
</many-to-one>
</class>
<!-- mapped class that will succeed in loading CompositeClass -->
<class name="BusinessObject" table="BusinessObjects">
<many-to-one name="compositeClass">
<column name="Col1" />
<column name="Data2" />
</many-to-one>
</class>