0

我是休眠的新手。我有两个表如下

Table1{id1 primary key;}

Table2{id2 primary key;}

table1 到 table2 之间存在一对多关系。实现了这种关系,没有问题。我们还有如下第三张表

Table3{(id1 & id2) primary key,  col3 ,col4}

从谷歌搜索得到一个解决方案,在第三个表映射中使用如下。

<composite-id>
     <key-property name="id1" column="id1" />
     <key-property name="id2" column="id2"/>
</composite-id>

如果有更好/高级的方法在休眠中实现相同的,请建议/指导我。还建议更好的方法来保存和检索对象。

提前致谢。

4

1 回答 1

0

我建议反对这种设计;主键应始终是单列、技术键(即没有任何类型的业务关系)。

在我的模式中,我这样建模:

Table3( id primary key, table1fk foreign key, table2fk foreign key, col1, col2, ... )

优点:

  • 所有桌子的设计相同
  • 使用外键可确保您不会意外删除Table1Table2
  • 清晰的关注点分离:PK 用于定位和标识一行。外键的意思是:我指的是另一个表。你的设计混合了两者
于 2013-10-04T10:21:02.380 回答