首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JPA:@JoinColumn和@PrimaryKeyJoinColumn之间的区别?

JPA:@JoinColumn和@PrimaryKeyJoinColumn之间的区别?
EN

Stack Overflow用户
提问于 2010-08-06 00:49:00
回答 2查看 110.8K关注 0票数 88

@JoinColumn@PrimaryKeyJoinColumn之间的确切区别是什么

对于作为外键一部分的列,可以使用@JoinColumn。典型的列可能如下所示(例如,在具有其他属性的连接表中):

代码语言:javascript
复制
@ManyToOne
@JoinColumn(name = "...")
private OtherClass oc;

如果我将该列也提升为主键,会发生什么情况(也称为识别关系)?因为该列现在是主键,所以我必须用@Id标记它

代码语言:javascript
复制
@Id
@ManyToOne
@JoinColumn(name = "...")
private OtherClass oc;

现在的问题是:

@Id + @JoinColumn是否等同于@PrimaryKeyJoinColumn?:

代码语言:javascript
复制
@ManyToOne
@PrimaryKeyJoinColumn(name = "...")
private OtherClass oc;

如果不是,那么@PrimaryKeyJoinColumn有什么用呢?

EN

回答 2

Stack Overflow用户

发布于 2018-02-14 11:29:58

我通常通过下面的图表来区分这两个:

使用PrimaryKeyJoinColumn

使用JoinColumn

票数 44
EN

Stack Overflow用户

发布于 2019-08-28 23:54:10

我知道这是一个古老的帖子,但是如果你想要一个单向的关系,或者有多个表都共享同一个id,那就是使用PrimaryKeyColumn的好时机。

一般来说,这不是一个好主意,最好在JoinColumn中使用外键关系。

话虽如此,如果您正在使用这样的系统的旧数据库上工作,那么这将是一个使用它的好时机。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3417097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档