【问题标题】:Confused with potential is a and has a relationship迷惑潜力是一种和有关系
【发布时间】:2014-08-22 16:44:52
【问题描述】:

我正在尝试配置一个新的数据库设计,因为我们决定迁移到休眠模式。以前在我的 java 代码中,我有以下三个类

超类

public abstract class Card {

    private String firstname;
    private String lastname;
    private String email;
    ...
}

卡片子类

public class ContactCard extends Card{
    private String variable1;
    private String variable2;
    private String variable3;

    public ContactCard(){

        super(firstname, lastname, email);
        ...
    }
}

还有其他一些人跟随。这似乎工作正常。但是我开始有点困惑。这里我们有 is a 关系中的子类,一些卡片 is a 卡片。不过,我无法将其映射到数据库表中。

例如,为了将卡片表的过程合并到数据库中,我可以为每个子类类型创建一个表,并且在这个表中我可以有一个引用卡片表的 id(它是在用户注册时生成的) )。但是,这现在意味着在我的数据库中,我已经将 is a 关系转换为 has a? 子类现在有一张卡片,而不是一张卡片。

我很困惑,希望有人能帮我解决问题。

谢谢

【问题讨论】:

  • 关系型数据库没有继承的概念。所以你必须选择一种使用关系概念来表示继承的方法。有 3 种策略,在文档 docs.jboss.org/hibernate/core/4.3/manual/en-US/html_single/… 中有详细描述。如果数据库直接理解对象,则不需要 ORM,它的作用正是将对象概念映射到关系概念,反之亦然。

标签: java mysql hibernate oop


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 2016-10-14
    • 2012-12-03
    • 2011-08-05
    相关资源
    最近更新 更多