继承和JPA2 / Hibernate的数据库建模问题

时间:2012-09-15 14:13:09

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

我使用JPA / Hibernate,MySQL和Spring Roo,我正在为具有两种不同类型成员的应用程序建模过程:

  • 男性成员
  • 女性成员

截至目前,我有一个男性和女性成员的表/实体。

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

例如,我可以有一个" 胡须样式"男性的属性将包含以下可能的值:" trimmed long shaven "。

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

  1. 寻求某种JPA继承。但是,我不确定选择哪种策略以及Hibernate支持哪种策略。
  2. 在我的会员表/实体中有两个字段maleSpecificInfo和femaleSpecificInfo。如果该成员是女性,则maleSpecificInfo将为null,反之亦然。
  3. 任何人都可以就哪些选项(如果有的话)可以接受提供建议。或者提供更好的选择?

1 个答案:

答案 0 :(得分:1)

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

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