【问题标题】:Inheritance in Hibernate. Inserting exampleHibernate 中的继承。插入示例
【发布时间】:2019-05-01 17:09:16
【问题描述】:

我想在产品类和笔记本电脑之间建立联系 产品类别

@Entity
@Table(name = "products")
@Inheritance(strategy = InheritanceType.JOINED)
public class Product {
    @Id
    @Column(unique = true, nullable = false)
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    @Column(nullable = false, unique = true)
    private String name;
    @Column(nullable = false)
    private BigDecimal cost;
    @Column(nullable = false)
    private int count;
    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "productStatus", nullable = false)
    private ProductStatus productStatus;
    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "productManufacture", nullable = false)
    private ProductManufacture productManufacture;
    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "productCategory", nullable = false)
    private ProductCategory productCategory;

和 笔记本电脑类

@Entity
@Table(name = "laptops")
public class Laptop extends Product {
    @Id
    @Column(unique = true, nullable = false)
    private int id;
    @Column(nullable = false)
    private String processor;
    private int videoMemory;
    @Column(nullable = false)
    private int ram;

但是我的变种不起作用...(我怎样才能正确 我怎样才能在数据库中插入一些数据?(请举例)

【问题讨论】:

    标签: java mysql spring hibernate hql


    【解决方案1】:

    Laptop 正在扩展 Product 类并继承父类的所有字段,包括 ID。您正在笔记本电脑类上再次定义 ID。继承策略也已加入,这意味着它为父类和子类处理 Id 生成。删除 Id 字段及其注释。

    【讨论】:

    • 我应该写什么来代替加入?
    • 没什么。联合战略运作良好。你只需要改变映射
    猜你喜欢
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多