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



我使用JPA/Hibernate、MySQL和SpringRoo,我正在为一个将具有两种不同类型成员的应用程序建模:

  • 男性成员
  • 女性成员

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

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

例如,我可以为男性设置一个">胡须样式"属性,该属性将包含以下可能值:">修剪剃掉"。

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

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

请任何人就我的哪种选择(如果有的话)是可以接受的提供建议。或者提供更好的替代方案?

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

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

最新更新