gpt4 book ai didi

java - 两个实体正在产生奇怪的现象

转载 作者:行者123 更新时间:2023-12-01 18:20:59 25 4
gpt4 key购买 nike

购物车项目实体

 @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;

购物车项目服务

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个购物车,每次用户将东西放入购物车时,或者创建购物车时,它都会为两个实体id添加+1(如果有2个)购物车并且用户将商品添加到购物车 ItemCartId 将为 3)

enter image description here

最佳答案

这是因为您使用的策略是使用相同的序列在多个表中生成 id。用这个替换它应该可以解决您的问题:

@GeneratedValue(strategy = GenerationType.IDENTITY)

关于java - 两个实体正在产生奇怪的现象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60290200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com