2012-01-17 16 views
0

結合テーブルを使用するリストに対して1対多のマッピングを使用しています。 このマッピングのネット上では、Listを使用しているが、Setsを使用した例はたくさんあります。リストと結合テーブルを使用した1対多のマッピング

は、テーブルを考えてみましょう:

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...>列)?アタッチメントテーブルまたは結合テーブルリスト(ここでは 'Attachment'テーブル)を表すテーブルにindex_colを置くことが必要ですか?

答えて

0

これは、リストマッピングで参照している表であるため、Ticket_Attachment_Joinである必要があります。

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

そして、あなたはすべてのインデックス付きのコレクションを必要としない場合attachmentsListは、あなたがすべてで<list-index column="index_col"/>そのマッピングを必要としない<bag>を使用していることをあなたがマップすることができます。

関連する問題