我是Hibernate和ORM的新手。
我有一个产品实体,其中包含描述,价格,条形码和其他产品仿制品等属性。
现在我想管理其他产品特定数据,例如我可以想象一个太阳镜实体,其中包含有关镜头,尺寸......以及 Watch 实体的信息,其中包含与形状,电池持续时间等相关的其他详细信息。
哪种策略更好?在“非ORM”世界中我会有:
两张桌子:手表和太阳镜,有重复的字段
一张表:“产品”包含手表和眼镜的所有属性以及字段“kindOfProduct”
如何在Hibernate / JPA上对其进行建模?
答案 0 :(得分:1)
如何使其更具通用性并拥有一个产品类别,每个产品都可以包含“产品功能”列表。
这可以通过多对多关系进行映射,并允许您根据需要添加任意数量的不同类型的产品和功能。
每个产品仍然可以包含产品类型字段,因此您可以了解正在处理的产品类型。
答案 1 :(得分:1)
您主要有三种继承策略可供选择。您在问题中提到的两个,加上一个混合的,它将公共属性存储到基表中,并将特定属性存储到专用表中。
但是只有这些信息,提供建议有点困难,因为每种策略都可以达到规则和限制。我建议首先阅读关于这个主题的Hibernate文档并自己进行试验:
http://docs.jboss.org/hibernate/stable/orm/manual/en-US/html_single/#d0e7071