【问题标题】:Database modeling issue with inheritance and JPA2/Hibernate继承和 JPA2/Hibernate 的数据库建模问题
【发布时间】:2012-09-15 14:13:09
【问题描述】:

我使用 JPA/Hibernate、MySQL 和 Spring Roo,并且我正在对具有两种不同类型成员的应用程序进行建模:

  • 男性会员
  • 女性会员

截至目前,我为男性和女性成员提供了一个表/实体。

但是,我现在意识到根据成员是男性还是女性,某些字段/属性会有所不同。

例如,我可以为男性设置一个“beard style”属性,该属性将包含以下可能的值:“trimmed, long , 剃了"。

我想到了几个选项来在我的域模型中表示这一点:

  1. 寻求某种 JPA 继承。但是,我不确定要选择哪种策略以及 Hibernate 支持哪种策略。
  2. 在我的成员表/实体中有两个字段 maleSpecificInfo 和 femaleSpecificInfo。如果成员是女性,则 maleSpecificInfo 将为空,反之亦然。

任何人都可以就我的哪些选项(如果有的话)可以接受提供建议。还是提供更好的选择?

【问题讨论】:

    标签: hibernate database-design inheritance jpa spring-roo


    【解决方案1】:

    我不喜欢第二种方法。一个男性对象可能包含与 FemaleSpecificInfo 的关系,这对我来说很难闻。我不认为“组合优于继承”的实现是正确的。

    我会尝试 Hibernate 继承。您应该检查 strategies 。如果男性和女性共享大部分数据,我会使用每个类层次结构表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 2011-11-27
      • 1970-01-01
      相关资源
      最近更新 更多