Spring hibernate JPA Отображение «один ко многим»: ошибка повторяющегося ключа - PullRequest
0 голосов
/ 26 января 2020

У меня есть отношения один ко многим между следующими 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.

enter image description here

Для следующей вставки я получаю Дублирующую запись '41' для ключа 'UK_22djpp3b17x2x1vurh26crns'

вставьте в website_dev.order_item_productaddition значения (379,41)

Я не понимаю, что не так с моим отображением таблицы Join, это отношение один ко многим, и я ожидаю несколько записей. Почему Spring jpa добавляет уникальное ключевое ограничение в таблицу соединений. Есть ли способ сделать составной ключ ограничения в таблице соединений? или как я могу снять ограничение?

Любой совет будет высоко оценен.

Спасибо.

...