объект CartItem
@Entity
@Table(name="cart_item")
public class CartItem {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer cartItemId;
private int quantity;
private double price;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "product_id")
private Product product;
@ManyToOne
@JoinColumn(name = "cart_id")
private Cart cart;
объект корзины
@Entity
@Table(name="cart")
public class Cart {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer cart_id;
@OneToOne
@JoinColumn(name = "user_id")
@JsonIgnore
private User user;
@OneToMany(mappedBy = "cart", cascade = CascadeType.ALL,fetch=FetchType.EAGER)
private List<CartItem> cartItem;
private double totalPrice;
CartItemService
public void save(User user,CartItem cartItem,String name){
Cart cart = cartRepository.findCartByUser(user);
Product product = productRepository.findByName(name);
cartItem.setProduct(product);
cartItem.setCart(cart);
cartItem.setQuantity(1);
cartItem.setPrice(product.getPrice());
cartItemRepository.save(cartItem);
}
Я не знаю, что не так, но я назначил каждому пользователю 1 корзина, и каждый раз, когда пользователь кладет что-то в корзину, или когда корзина создается, он добавляет +1 к идентификатору обеих сущностей (если есть 2 корзины и пользователь добавляет элемент в корзину, ItemCartId будет равен 3)
![enter image description here](https://i.stack.imgur.com/H5ksQ.png)