Наследование в Hibernate.Пример вставки - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу установить связь между классом продукта и ноутбуком Класс продукта

@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;

Но мой вариант не работает ... (Как я могу это сделатьа как я могу вставить в базу данных некоторые данные? (пример, пожалуйста)

1 Ответ

0 голосов
/ 02 декабря 2018

Портативный компьютер расширяет класс Product и наследует все поля родительского класса, включая ID.Вы снова определяете ID в классе Laptop.Стратегия наследования также JOINED, что означает, что она обрабатывает генерацию идентификатора как для родительского, так и для дочернего класса.Удалите поле Id и его аннотации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...