23.4.5. Associations on alternate keys

  1. <class name="Person">
  2. <id name="id">
  3. <generator class="hilo"/>
  4. </id>
  5. <property name="name" length="100"/>
  6. <one-to-one name="address"
  7. property-ref="person"
  8. cascade="all"
  9. fetch="join"/>
  10. <set name="accounts"
  11. inverse="true">
  12. <key column="userId"
  13. property-ref="userId"/>
  14. <one-to-many class="Account"/>
  15. </set>
  16. <property name="userId" length="8"/>
  17. </class>
  18. <class name="Address">
  19. <id name="id">
  20. <generator class="hilo"/>
  21. </id>
  22. <property name="address" length="300"/>
  23. <property name="zip" length="5"/>
  24. <property name="country" length="25"/>
  25. <many-to-one name="person" unique="true" not-null="true"/>
  26. </class>
  27. <class name="Account">
  28. <id name="accountId" length="32">
  29. <generator class="uuid"/>
  30. </id>
  31. <many-to-one name="user"
  32. column="userId"
  33. property-ref="userId"/>
  34. <property name="type" not-null="true"/>
  35. </class>