mysql - Hibernate:外键需要是主键

标签 mysql spring hibernate

我有两个实体:一个用户和一个包含(引用)用户的 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/

相关文章:

mysql - MySQL中where条件中运算符的解析顺序是什么(例如: SELF join)

MySQL 索引查询对特定列值花费很长时间

spring - 将 Spring Batch 和 Spring Integration 结合起来?

java - 使用 spring mvc 在 java 中填充表

hibernate - hibernate 插件库未添加

c# - C# 将 MySQL 服务器上的表中的数据复制到本地 MySql 数据库表

mysql - 将 SUMPRODUCT 滑率佣金计算从 Excel 移植到 MYSQL

java - 如何在 XML 已经工作的情况下添加 JSON 支持?

java - 如何避免所有列 hibernate 时的 saveOrUpdate

java - 共享 session 实体