Для чего-то вроде многих ко многим в Hibernate вы определяете отношения. Вот пример (ссылка здесь :
<class name="Person">
<id name="id" column="personId">
<generator class="native"/>
</id>
<set name="addresses" table="PersonAddress">
<key column="personId"/>
<many-to-many column="addressId"
class="Address"/>
</set>
</class>
<class name="Address">
<id name="id" column="addressId">
<generator class="native"/>
</id>
<set name="people" inverse="true" table="PersonAddress">
<key column="addressId"/>
<many-to-many column="personId"
class="Person"/>
</set>
</class>
Со стороны базы данных для связи «многие ко многим» у вас обычно будет таблица ссылок.
Итак, мы бы получили:
PERSON
ADDRESS
PERSON_ADDRESS
Таблица PERSON_ADDRESS будет содержать person_id и address_id, чтобы связать две сущности вместе. Таким образом, у одного человека может быть много адресов, и данный адрес может потенциально принадлежать более чем одному человеку или компании.
Для отношений 1: m достаточно иметь следующее:
PERSON
ADDRESS
В адресе у вас будет столбец person_id, но может быть много записей адресов для данного person_id, что дает вам возможность 1: m.