Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
继承和JPA2/Hibernate的数据库建模问题_Hibernate_Database Design_Inheritance_Jpa_Spring Roo - Fatal编程技术网

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

继承和JPA2/Hibernate的数据库建模问题,hibernate,database-design,inheritance,jpa,spring-roo,Hibernate,Database Design,Inheritance,Jpa,Spring Roo,我使用JPA/Hibernate、MySQL和Spring Roo,我正在建模一个将有两种不同类型成员的应用程序: 男性成员 女性成员 到目前为止,我有一个表/实体供男性和女性成员使用 但是,我现在意识到,根据成员是男性还是女性,某些字段/属性将有所不同 例如,我可以为男性设置一个“胡须样式””属性,该属性将包含以下可能的值:“修剪、修长、刮胡子” 我想到了几个在我的域模型中表示这一点的选项: 选择某种JPA继承。但是,我不确定选择哪种策略以及Hibernate支持哪种策略 在我的成员表/实

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

  • 男性成员
  • 女性成员
到目前为止,我有一个表/实体供男性和女性成员使用

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

例如,我可以为男性设置一个“胡须样式””属性,该属性将包含以下可能的值:“修剪、修长、刮胡子”

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

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

  • 请任何人提供意见,我的选择,如果有的话,是可以接受的。还是提供更好的选择?

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

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