使用@OneToMany和@ManyToMany之间的区别

使用@OneToMany和@ManyToMany之间的区别,第1张

使用@OneToMany和@ManyToMany之间的区别

好吧,不同之处在于您尝试使用对象反映的设计。

在您的情况下,每个

Question
都可以分配给多个
Categories
-这是
@*ToMany
关系的标志。现在,您必须决定是否:

  • 每个
    Category
    都只能
    Question
    分配一个(这将导致 唯一的 约束,这意味着 没有其他Category可以引用相同的Question )-这将是
    @OneToMany
    关系,
  • 每个
    Category
    可以
    Questions
    分配多个(
    Category
    表中没有唯一约束)-这就是
    @ManyToMany
    关系。

@OneToMany(问题- >类别)

仅当您使用

@JoinTable
或使用显式定义时,连接关系才能由连接表表示。当它是 单向
关系时,其中拥有方为“一个”方(这意味着在
Question
实体中您具有的集合
Categories
,但在
Categories
您中没有对的引用
Question

如果您考虑一下,使用联接表似乎很合理。DBMS没有其他方法可以保存

Question
表中的一行与表中的多行之间的连接
Categories

但是,如果要建模双向关系,则需要指定

Category
(“很多”面)是该关系的拥有面。在这种情况下,DBMS可以在
Category
表中创建带有外键的连接列,因为每一
Category
行只能连接一个
Question

这样,您就没有任何联接表,只有简单的外键(仍然,如开头所述,您可以使用强制创建联接表

@JoinTable
)。

@多多多

此关系必须表示为联接表。它的工作原理与单向

@OneToMany
关系非常相似,但是在这种情况下,您可能会有来自的
Question
多行与来自的多行
Categories



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5427076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存