There are 2 related entities in a Hibernate JPA project:
@Entity
public class Order {
@Id @GeneratedValue(generator="order_sequence", strategy=GenerationType.IDENTITY)
private int id;
}
and
@Entity
public class OrderItem {
@Id @GeneratedValue(generator="orderitem_sequence", strategy=GenerationType.IDENTITY)
@ManyToOne(cascade = CascadeType.ALL)
private Order order;
//....
}
With some detailed code ignored, I tried to merge a new Order
instance with a List
of OrderItem
instances in cascade manner, i.e. merge
the List<OrderItem>
with an EntityManager
- "em" in one go without merge
the new Order
:
for (OrderItem orderItem: orderItemList) {
em.merge(orderItem);
}
But encountered error when the size of the List<OrderItem>
is greater than 1: Unique index or primary key violation
since the same Order
is merged multiple times when merging each Order
instance.
Question: How to resolve this error without merge the Order instance explicitly as a separate merge
?