【问题标题】:Hibernate/JPA - Is possible to have a children with parent's ID + another field?Hibernate/JPA - 是否可以有一个具有父母 ID + 另一个字段的孩子?
【发布时间】:2020-12-26 11:06:06
【问题描述】:

我是使用 Hibernate 的新手,我想知道是否可以使用复合键更改子组件的主键。这是我的父组件:

public class Person{
    @Id
    @Column(name = "id", unique = true)
    private String id;

    private String name;
    private String surname;
}

这是我的子组件:

public class User extends Person {
   private String email;
   private String password;
}

我想用 id+email 键来识别我的用户。这可能吗?

【问题讨论】:

    标签: spring hibernate jpa inheritance


    【解决方案1】:

    如果您继承的实体共享同一个表,这是不可能的,因为在数据库中,每个表只能有一个主键逻辑。

    但是,如果您有使用连接的继承策略,我猜是有可能的 - 请查看 Hibernate - Foreign and primary keys in inheritance

    【讨论】:

    • 非常感谢,我的继承类型是“已加入”,那我试试。您建议如何处理此类问题?
    • 类似于引用问题中接受的 awnser 中描述的内容 - User 表中的 @PrimaryKeyJoinColumn(name="email")。所以在数据库中应该有单独的表,每个表都有一个主键。
    • 这看起来像是一个很好的主题教程:baeldung.com/hibernate-inheritance
    猜你喜欢
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多