@JoinColumn
和@PrimaryKeyJoinColumn
之间的确切区别是什么
对于作为外键一部分的列,可以使用@JoinColumn
。典型的列可能如下所示(例如,在具有其他属性的连接表中):
@ManyToOne
@JoinColumn(name = "...")
private OtherClass oc;
如果我将该列也提升为主键,会发生什么情况(也称为识别关系)?因为该列现在是主键,所以我必须用@Id
标记它
@Id
@ManyToOne
@JoinColumn(name = "...")
private OtherClass oc;
现在的问题是:
@Id
+ @JoinColumn
是否等同于@PrimaryKeyJoinColumn
?:
@ManyToOne
@PrimaryKeyJoinColumn(name = "...")
private OtherClass oc;
如果不是,那么@PrimaryKeyJoinColumn
有什么用呢?
发布于 2018-02-14 11:29:58
我通常通过下面的图表来区分这两个:
使用PrimaryKeyJoinColumn
使用JoinColumn
发布于 2019-08-28 23:54:10
我知道这是一个古老的帖子,但是如果你想要一个单向的关系,或者有多个表都共享同一个id,那就是使用PrimaryKeyColumn
的好时机。
一般来说,这不是一个好主意,最好在JoinColumn
中使用外键关系。
话虽如此,如果您正在使用这样的系统的旧数据库上工作,那么这将是一个使用它的好时机。
https://stackoverflow.com/questions/3417097
复制相似问题