Java 没有主键的表的Hibernate映射
我知道以前有人问过这个问题,但我也有一个设计问题 有两张这样的表格:Java 没有主键的表的Hibernate映射,java,oracle,hibernate,orm,mapping,Java,Oracle,Hibernate,Orm,Mapping,我知道以前有人问过这个问题,但我也有一个设计问题 有两张这样的表格: 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映射中映射组成员?Hibernate需要某种
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映射中映射组成员?Hibernate需要某种id,我不知道该怎么说
第二,也许我应该先问一下,这是不是一个糟糕的db设计?group_members表上是否应该有pk,如序列或其他内容
此外,这是一个Oracle数据库:尽管数据库设计(可能)很差,但是否有一些自动生成的id可以使用
在描述行的唯一性的映射中,您绝对需要一个标识符:按主键、分配或组合。在您的情况下,您可以使用
复合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_组名称、组成员)是唯一的。但这并不理想,你应该有一个PK
参考文献