我有两个实体:一个用户和一个包含(引用)用户的 guest 。 用户:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long user_id;
@Column(unique = true)
private String email;
@Column
private String password;
@Column
private String name;
@Column
private String surname;
....
}
客人:
@Entity
public class Guest {
@Id
@OneToOne
@JoinColumn(name = "user_id_fk")
private User user;
private int visits;
...
}
正如您所猜到的,我希望我的外键 user_id (user_id_fk) 成为我的客人的主键,但这段代码似乎不起作用。 任何帮助将不胜感激。
最佳答案
@PrimaryKeyJoinColumn
可能有效(我不确定)
您的客人类(class):
@Entity
public class Guest {
@OneToOne
@PrimaryKeyJoinColumn
private User user;
private int visits;
...
}
但是你应该寻找实现 inheritance
关于mysql - Hibernate:外键需要是主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41314817/