2

一般来说,我是 Hibernate 和 ORM 的新手。

我有一个Product实体,它包含描述、价格、条形码和其他产品通用属性等属性。

现在我想管理其他特定于产品的数据,例如,我可以想象一个Sunglasses实体,其中包含有关镜片、尺寸 .... 的信息,以及一个Watch实体,其中包含与形状、电池使用时间等相关的其他详细信息。

哪个策略更好?在“非 ORM”世界中,我会拥有:

  • 两张表:手表和太阳镜,有重复的字段

  • 一个表:具有手表和眼镜的所有属性的“产品”和一个字段“kindOfProduct”

如何在 Hibernate/JPA 上建模?

4

2 回答 2

1

如何让它更通用并拥有一个产品类别,每个产品都可以有一个“产品功能”列表。

这可以通过多对多关系映射,并允许您根据需要添加尽可能多的不同类型的产品和功能。

每个产品仍然可以具有产品类型字段,以便您知道您正在处理的产品类型。

于 2012-12-17T10:41:03.367 回答
1

您主要有三种继承策略可供选择。您在问题中提到的两个,加上一个混合的,它将公共属性存储到基表中,并将特定属性存储到专用表中。

但是只有这些信息,很难给出建议,因为每个策略可以完成的事情都有规则和限制。我建议首先阅读有关此主题的 Hibernate 文档并自己进行试验:

http://docs.jboss.org/hibernate/stable/orm/manual/en-US/html_single/#d0e7071

于 2012-12-17T11:09:59.447 回答