У меня есть отношения один ко многим между следующими 2 объектами.
@Entity
public class OrderItem {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@OneToOne
@JoinColumn(name="ORDER_PRODUCT_ID")
private Product product;
private Long quantity;
private BigDecimal totalPrice;
@OneToMany
@JoinTable(name="orderItem_productaddition",joinColumns=@JoinColumn(name="orderItem_id"), inverseJoinColumns=@JoinColumn(name="ProductAddition_id"))
private Set<ProductAddition> listOfAdditions=new HashSet<>();
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(unique = true)
private ProductOption productOption;
}
Второй объект
@Entity
public class ProductAddition{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String additionDescription;
private BigDecimal additionPrice;
private BigDecimal additionsPriceForSmall;
private BigDecimal additionsPriceForNormal;
private BigDecimal additionsPriceForFamily;
private BigDecimal additionsPriceForParty;
@ManyToMany(fetch = FetchType.LAZY,mappedBy = "productAdditions")
@JsonBackReference
private Set<Product>product=new HashSet<>();
}
Ниже приведены существующие данные в таблице объединения order_item_productaddition.
Для следующей вставки я получаю Дублирующую запись '41' для ключа 'UK_22djpp3b17x2x1vurh26crns'
вставьте в website_dev.order_item_productaddition значения (379,41)
Я не понимаю, что не так с моим отображением таблицы Join, это отношение один ко многим, и я ожидаю несколько записей. Почему Spring jpa добавляет уникальное ключевое ограничение в таблицу соединений. Есть ли способ сделать составной ключ ограничения в таблице соединений? или как я могу снять ограничение?
Любой совет будет высоко оценен.
Спасибо.