В JPA отсутствует концепция наличия дополнительного постоянного атрибута в отношении (2.0). Вот почему связь со свойством на самом деле является промежуточной сущностью.
Как для сущностей Заказа, так и для Продуктов вам необходимо отношение «один ко многим» с новой сущностью. Из-за двунаправленных отношений, новая сущность будет иметь отношения многие к одному с Заказом и Продуктом.
Вы должны пойти на что-то вроде этого (показывает только отношения, идентификаторы и другие сопоставления удалены):
@Entity
@Table(name="order_item")
public class OrderItem {
@ManyToOne
private Order order;
@ManyToOne
private Product product;
}
@Entity
public class Order {
@OneToMany (mappedBy = "order")
private Set<OrderItem> orderItems;
}
@Entity
public class Product {
@OneToMany(mappedBy = "product")
private Set<OrderItem> orderItems;
}