我使用连接表为List使用一对多映射。 有很多例子可以使用集合而不是列表来使用此映射。
考虑表:
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放在表中列表的列表中(此处为'附件'表)。
答案 0 :(得分:0)
它应该在Ticket_Attachment_Join
上,因为它是您在列表映射中引用的表。
<list name="attachmentsList" table="Ticket_Attachment_Join"
cascade="save-update">
如果您不需要任何索引收藏集,则可以使用attachmentsList
映射<bag>
,然后根本不需要<list-index column="index_col"/>
映射。