什么更好,使用@manytomany或为中间表创建实体?

时间:2017-10-09 18:13:05

标签: java hibernate orm many-to-many eclipselink

确实,使用manytomany的关系比实体提供中间表更容易,但我不喜欢许多raisons的这个注释:

  1. 在我的中间表
  2. 中添加新列是不可能的
  3. 按实体匹配中间表看起来比使用@ManyToMany
  4. 更接近现实

    您怎么看?

1 个答案:

答案 0 :(得分:0)

这是个案基础。

1)有时关系实际上与"州" 相关联。在多对多关系的情况下,如果您想在您的关系中添加州/属性,那么您需要将您的关系转变为单独的实体。因此,除了外键之外,这将导致连接表中的新列。 这需要更新映射。这是一个很好的例子: http://www.mkyong.com/hibernate/hibernate-many-to-many-example-join-table-extra-column-annotation/

从技术上讲,我们这里没有使用@ManyToMany映射,但逻辑上它是多对多关系。新实体(关系实体)将与每个现有实体类型具有多对一关系,并且每个实体类型将具有一对多关系,返回到表示关系的新实体

2)如果没有必要保持关系#em>"状态" ,那么简单使用@ManyToMany关联映射就足够了。它不需要维护/管理单独的实体来表示关系。否则,单独的实体只会使对象模型复杂化。