我需要创建一个产品数据库。我的产品将具有共同的属性,例如价格、描述、品牌……以及特定的属性,具体取决于它们的类别(笔记本电脑将具有显示尺寸、内存、cpu 等)。
我的通用实体是:
@Entity
@Table( name="products" )
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(
name="discriminator",
discriminatorType=DiscriminatorType.STRING
)
@DiscriminatorValue(value="GEN")
public class Product implements Serializable {
// ...
}
这是特定实体的示例:
@Entity
@DiscriminatorValue("NB")
public class Notebook extends Product {
// ...
}
我想查询我的产品实体以显示我的数据库中所有产品的表列表。
我还希望显示“产品类型”列。
如何确定产品的子类型?如果是笔记本、电话或其他类型的产品?
有一个鉴别器列,由 jpa 自动创建和管理,但是反向获取Product类型的正确方法是什么?
如果这是不可能的,我该如何重新设计我的模型以实现我的目标?