我知道之前已经问过这个问题,但我也有一个设计问题。
有两个表如下:
Table Group_table
column pk_Group_name
column group_type
etc
Table Group_members
column fk_group_name -> foreign key to group_table
column group_member
使用这种结构很容易,但我有两个问题。首先,我应该如何在Hibernate映射中映射group_members? Hibernate想要某种类型的id,我不知道该告诉它什么。
其次,虽然我可能先问一下,这个糟糕的数据库设计是不是? group_members表上是否应该有一个pk,比如序列或什么?
此外,这是一个Oracle数据库:尽管(可能)糟糕的数据库设计,我可以使用一些自动生成的ID吗?
答案 0 :(得分:3)
答案 1 :(得分:2)
您绝对需要映射中的标识符来描述行的唯一方式:PK,已分配或复合。在您的情况下,您可以使用composite-id
:
<class name="eg.Foo" table"FOOS">
<composite-id name="compId" class="eg.FooCompositeID">
<key-property name="string"/>
<key-property name="short"/>
</composite-id>
<property name="name"/>
....
</class>
当然,这假设情侣(fk_group_name,group_member)是唯一的。但这并不理想,你应该有PK。