I have a one-to-many relationship between two entities Order and LineItem. I also have a parent to Order entity which is Customer and Customer to Order is one-to-many. When I try to delete the order entity, neither the order, nor the line_items associated with the order is getting deleted. I have tried the below options
orphanRemove- Fetch type from Lazy to Eager
- Cascade to ALL
Below is the Order and LineItem definitiona
Order
@Data
@NoArgsConstructor
@Builder
@AllArgsConstructor
@EqualsAndHashCode(exclude = {"customer", "lineItems"})
@ToString(exclude = {"customer", "lineItems"})
@Entity
@Table(name = "orders")
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Min(value = 2000, message = "Min order value should be 2000 INR")
@Max(value = 10_000, message = "Max order value can be 10000 INR")
private double price;
@PastOrPresent(message = "Order date cannot be in future")
private LocalDate date;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="customer_id", nullable = false)
@JsonBackReference
private Customer customer;
@OneToMany(mappedBy = "order",
cascade = CascadeType.ALL,
orphanRemoval = true,
fetch = FetchType.EAGER)
private Set<LineItem> lineItems;
@Data
@NoArgsConstructor
@EqualsAndHashCode(exclude = "order")
@ToString(exclude = "order")
@Builder
@AllArgsConstructor
@Entity
@Table(name="line_items")
public class LineItem {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private int qty;
private double price;
private String name;
@JsonIgnore
@ManyToOne
@JoinColumn(name="order_id", nullable = false)
private Order order;
}
this.orderRepository.deleteById(fetchedOrder.getId());
Output:
Hibernate:
select
lineitems0_.order_id as order_id5_2_0_,
lineitems0_.id as id1_2_0_,
lineitems0_.id as id1_2_1_,
lineitems0_.name as name2_2_1_,
lineitems0_.order_id as order_id5_2_1_,
lineitems0_.price as price3_2_1_,
lineitems0_.qty as qty4_2_1_
from
line_items lineitems0_
where
lineitems0_.order_id=?
Where am I going wrong and how to troubleshoot this issue?