Mapping :
<class name="Person" table="tperson"> <id name="id" column="personpk"> <generator class="native"/> </id> <set name="addresses" table="personaddress"> <key column="personid"/> <many-to-many column="addressid" unique="true" class="Address"/> </set> </class>
<class name="Address" table="taddress"> <id name="id" column="addresspk"> <generator class="native"/> </id> <join table="personaddress" inverse="true" optional="true"> <key column="addressid"/> <many-to-one name="person" column="personid" not-null="true"/> </join> </class>
Mapping :
<class name="Person" table="tperson">
<id name="id" column="personpk">
<generator class="native"/>
</id>
<set name="addresses"
table="personaddress">
<key column="personid"/>
<many-to-many column="addressid"
unique="true"
class="Address"/>
</set>
</class>
<class name="Address" table="taddress">
<id name="id" column="addresspk">
<generator class="native"/>
</id>
<join table="personaddress"
inverse="true"
optional="true">
<key column="addressid"/>
<many-to-one name="person"
column="personid"
not-null="true"/>
</join>
</class>