0

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

  • 男性成员
  • 女性成员

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

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

例如,我可以为男性设置一个“胡须风格”属性,该属性将包含以下可能的值:“修剪”。

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

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

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

4

1 回答 1

1

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

我会尝试休眠继承。你应该检查策略。如果男性和女性共享大部分数据,我会使用Table per class hierarchy

于 2012-09-15T16:18:35.713 回答