java如何在spring boot中使用超类@Entity引用子类
我正在尝试使用SpringBoot和HibernateJPA创建一个表。现在我有一个情况,我有一个实体产品,可以是两种类型。内置产品或定制产品
产品是超级类,内置产品和定制产品都扩展了它
现在我有了另一个实体OrderItem,它与产品有@ManyToOne
关系
因此,此OrderItem可以将产品作为内置产品或自定义产品
我尝试在产品上使用@Inheritance
,将@DiscriminatorColumn
作为is_a
并扩展该类以生成内置产品和CustomProduct。我的课看起来像
@Table(name = "products")
@Entity
@Inheritance
@DiscriminatorColumn(name = "is_a")
public abstract class Product {
// Getter Setters
}
另外两个班是
@Entity
public class BuiltInProduct extends Product {
// Getter setters
}
现在,因为我的实体OrderItem可以有内置产品或自定义产品,所以它有一个字段产品
public class OrderItem {
...
@ManyToOne
private Product product;
}
我知道产品是抽象类,因此我需要更多的信息来序列化和反序列化为类型
我仍然无法获得所需的输出
我刚接触Spring,不知道如何处理这种情况
此外,我不确定我是否使用了正确的@Inheritance
,或者是否应该使用联接的、表每类的方法
我相信JOINED将更适合ButilIn和CustomProducts,因为它们具有不同的属性,但同时我也不知道如何实现这一点
我的用例是,我有一个字段,其中可以包含可以选择的内置产品,或者用户可以添加自定义产品
共 (0) 个答案