Spring Data проблема со связями

уже долго думаю как решить эту проблему и так не нашел адекватного выхода. Разрабатываю для себя интернет магазин одежды. У заказа есть "orderDetails", при попытке удалить товар получа ошибку "Cannot delete or update a parent row: a foreign key constraint fails (newcitadel.order_detail`" Я думаю что правильно будет, если при удалении товара, не удалялся заказ с этим товаром. Возможно нужно изменить схему бд?

Схема бд: введите сюда описание изображения

Сущности: Order

@Entity(name = "order")
@NoArgsConstructor
@Getter
@Setter
public class Order {
    @Id
    @SequenceGenerator(
            name = "order_sequence",
            sequenceName = "order_sequence",
            allocationSize = 1
    )
    @GeneratedValue(
            strategy = SEQUENCE,
            generator = "order_sequence"
    )
    @Column(
            name = "id",
            updatable = false
    )
    private Long id;

    @Column(name = "order_reference")
    private String orderReference;
    @Column(name = "payment_status")
    private boolean paymentStatus;
    @Column(name = "first_name")
    @NotNull
    private String firstName;
    @Column(name = "last_name")
    @NotNull
    private String lastName;
    @Column(name = "phone")
    @NotNull
    private String phone;
    @Column(name = "country")
    @NotNull
    private String country;
    @Column(name = "city")
    @NotNull
    private String city;
    @Column(name = "address")
    @NotNull
    private String address;
    @Column(name = "total")
    @NotNull
    private double total;
    @Column(name = "order_date")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @NotNull
    private Date orderDate;
    @Column(name = "checked", nullable = false)
    private boolean checked;
    @Column(name = "zip_code")
    private String zipCode;

    @OneToMany(cascade = CascadeType.ALL)
    @JoinColumn
    private List<OrderDetail> items;

OrderDetails

@Entity(name = "order_detail")
@NoArgsConstructor
@Getter
@Setter
public class OrderDetail {
    @Id
    @SequenceGenerator(
            name = "order_detail_sequence",
            sequenceName = "order_detail_sequence",
            allocationSize = 1
    )
    @GeneratedValue(
            strategy = SEQUENCE,
            generator = "order_detail_sequence"
    )
    @Column(
            name = "id",
            updatable = false
    )
    Long id;

    @OneToOne
    Product product;
    private String size;
    private int qty;
    private double price;

Product:

@Entity(name = "Product")
@NoArgsConstructor
@Getter
@Setter
public class Product {
    @Id
    @SequenceGenerator(
            name = "product_sequence",
            sequenceName = "product_sequence",
            allocationSize = 1
    )
    @GeneratedValue(strategy = SEQUENCE, generator = "product_sequence")
    @Column(name = "id", updatable = false)
    private Long id;
    @Column(name = "name")
    private String name;
    @Column(name = "descriptions")
    @OneToMany(cascade = CascadeType.ALL)
    private List<i18nTexts> descriptions;
    @Column(name = "price")
    private Double price;

    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "product_id")
    private List<MediaFile> images;

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "sizes_id")
    Sizes sizes;

    @Column(
            name = "hidden"
    )
    private boolean isHidden;

Ответы (0 шт):