【问题标题】:What is unidirectional many-to-many association?什么是单向多对多关联?
【发布时间】:2013-06-26 17:37:14
【问题描述】:

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

如果正确,unidirectional many to many association 是什么意思?和bidirectional many to many mapping有什么区别?

顾名思义many to many是双向的!

【问题讨论】:

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


    【解决方案1】:

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

    从数据库的角度来看:多对多将使用第三个表实现,该表包含两个表中的条目。

    从 java 实体的角度来看:它是由你决定的,如果你想要它是双向的还是单向的。简单的意思是,您可以在 Module 中拥有一组学生,但您可能不想关心学生属于多少个 Module。

    class Student{
    //attributes and methods
    }
    
    class Module{
    
    Collection<Student>  students;
    
    //other attributes and methods.
    
    }
    

    现在,作为某个机构的管理人员,我希望能够灵活地创建模块并将学生分配到该模块。我更喜欢多对多单向。所以,实际上,如果你看到,这里有很多模块和很多学生(我希望你能明白我的意思)。话虽如此,您并不局限于确定学生是否属于 Java 模块。我希望它能让它更清楚一点。

    【讨论】:

    • 我了解 DB 观点,但不了解 java entities perspective。我无法区分两者
    • 嗯,看看我的编辑,我认为它应该让你更清楚地怀疑:)
    • 我有一个疑问,我们可以在这里讨论@@chat.stackoverflow.com/rooms/32452/…
    【解决方案2】:

    单向意味着,例如,A 具有对 Bs 的引用,但反之则不然。

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

    【讨论】:

    • 你能详细说明一下吗"..多对多的概念是用于数据库映射的。x方向的概念是用于java对象的..." 我不太明白得到它。
    • 我的意思是表映射。使用@ManyToMany,hibernate 将生成第三个连接表,其中包含相关表的外键。所以 Hibernate 使用注解来生成正确的模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    • 2011-03-03
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多