сопоставление один ко многим с использованием списков и таблицы соединений - PullRequest
0 голосов
/ 17 января 2012

Я использую отображение один-ко-многим для Списка, используя таблицу соединений. Существует множество примеров, доступных для этого отображения с использованием наборов, но не списков.

Рассмотрим таблицы:

Table Ticket
{
ticketid int PK;
...
}

Table Attachment
{
attachmentid int PK;
...
}

Присоединиться к таблице:

Ticket_Attachment_Join
{
tid  FK (ref to Ticket.ticketid)
aid PK FK(ref to Attachment.attachmentid)
}

Отображения: Ticket.hbm.xml:

    <hibernate-mapping>
    <class name="Tickets" table="Ticket">
    ...
    <list name="attachmentsList" table="Ticket_Attachment_Join" cascade="save-update">
            <key column="ticketid"/>
           <list-index column="index_col"/>
            <many-to-many column="attachmentId" unique="true" class="Attachments" />
    </list>

...
</class>
</hibernate-mapping>

Я хочу спросить, в какую таблицу я должен поместить столбец index_col (<list-index...> столбец)? В таблице вложений или в таблице соединений ?? Обязательно ли помещать index_col для списков в таблицу, которая представляет списки (Здесь таблица 'Attachment').

1 Ответ

0 голосов
/ 17 января 2012

Он должен быть на Ticket_Attachment_Join, так как это таблица, к которой вы обращаетесь при отображении списка.

 <list name="attachmentsList" table="Ticket_Attachment_Join" 
                                      cascade="save-update">

И если вам не нужны никакие индексированные коллекции, вы можете отобразить эту attachmentsList, используя<bag> тогда вам вообще не нужно это <list-index column="index_col"/> отображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...