gpt4 book ai didi

java - 将外键设为模型中的主键

转载 作者:行者123 更新时间:2023-12-02 01:52:11 26 4
gpt4 key购买 nike

我需要在我的 hibernate 应用程序模型中将外键列作为主键。当我设置@Id时出现错误。这是我的模型

@Entity
@Table(name = "otp")
public class OTP {
@Id
private Origin origin;
private int code;
@Column(name = "created_at", nullable = true)
private Date created_at=new Date();
}

以上实体模型无法添加id。那么如何为外键列添加id。正如你所看到的,我有起源类一对一的关系。我需要这种关系作为主键

最佳答案

外键允许重复,这使得它们在大多数情况下不适合作为主键。但这不是规则。

唯一的异常(exception)是具有一对一关系的表,其中链接表的外键和主键相同。

我遇到过类似的情况并做了类似的事情,

@Entity
@Table(name = "PERSON_DETAILS")
public class PersonDetails {
@Id
private Long personId;

@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ID_PERSON", nullable = false)
@MapsId
private Person person;
....
}

@Entity
@Table(name = "PERSON")
@SequenceGenerator(name = "SQ_PRSN_ID", sequenceName = "SQ_PRSN_ID")
public class Person{
@Id
@GeneratedValue(generator = "SQ_PRSN_ID", strategy = GenerationType.SEQUENCE)
@Column(name = "ID_PERSON", nullable = false)
private Long personId;
...
}

我找到了类似的例子here ,希望这是您正在寻找的。

关于java - 将外键设为模型中的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52810045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com