The <component> element maps properties of a child object to columns of the table of a parent class. Components can, in turn, declare their own properties, components or collections
The <dynamic-component> element allows a Map to be mapped as a component, where the property names refer to keys of the map
example of dynamic-component:
Code:
<dynamic-component name="userAttributes">
<property name="foo" column="FOO" type="string"/>
<property name="bar" column="BAR" type="integer"/>
<many-to-one name="baz" class="Baz" column="BAZ_ID"/>
</dynamic-component>
example of component
Code:
<class name="eg.Person" table="person">
<id name="Key" column="pid" type="string">
<generator class="uuid"/>
</id>
<property name="birthday" type="date"/>
<component name="Name" class="eg.Name"> <!-- class attribute optional -->
<property name="initial"/>
<property name="first"/>
<property name="last"/>
</component>
</class>