I actually just ran into this exact same issue today and stumbled upon your post while trying to find a solution.
I think you should be able use a nested-composite-element in place of the component. There is some information in the Hibernate documentation at
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/components.html#components-dependentobjects.
Quote:
Composite elements can contain components but not collections. If your composite element contains components, use the <nested-composite-element> tag. This case is a collection of components which themselves have components. You may want to consider if a one-to-many association is more appropriate. Remodel the composite element as an entity, but be aware that even though the Java model is the same, the relational model and persistence semantics are still slightly different.
Try changing your
Code:
<!-- PROBLEM HERE - component not allowed here -->
<component name="billingRate" class="xyz.Rate">
...
to
Code:
<nested-composite-element name="billingRate" class="xyz.Rate">
<property name="value" column="bill_rate_value" type="double" not-null="true"/>
<property name="currency" column="bill_rate_currency_id" type="integer" not-null="true"/>
</nested-composite-element>
Hopefully that works!