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;
