什么是单向多对多关联?

时间:2013-06-26 17:37:14

标签: java hibernate many-to-many hibernate-mapping

据我了解,2个实体 A B 之间的Many to Many关联意味着 A 可以有多个 B B 中的值在 A 中可以有多个值。

如果这是正确的unidirectional many to many association是什么意思?它与bidirectional many to many mapping有什么不同?

顾名思义many to many表示双向!

2 个答案:

答案 0 :(得分:4)

我认为你对数据库表及其相应的实体感到困惑。

从数据库的角度来看:使用第三个表来实现多对多,它保存两个表中的条目。

从java实体的角度来看:如果你想要它是双向的或单向的,它可以由你决定。简单的意思是,你可以拥有一个模块学生的集合,但你可能不想关心学生所属的模块数量。

class Student{
//attributes and methods
}

class Module{

Collection<Student>  students;

//other attributes and methods.

}

现在,在管理某个机构时,我希望能够灵活地创建模块并将学生分配到这个模块。我更喜欢许多单向的。所以,实际上如果你看到,有许多模块以及许多学生(我希望你能弄明白我的意思)。话虽如此,您不必限制查看学生是否属于Java模块。我希望它能让它变得更加清晰。

答案 1 :(得分:2)

单向意味着,例如A引用B,但不是相反。

多对多意味着双向 many to many概念用于数据库表映射。 Hibernate使用它(和其他x-to-x)来生成正确的数据库表模式。 x-directional概念适用于java对象。