我有一個ShoppingCart
其中有一套CartItem
對象。當我保存購物車時,所有cartitems也被保存。當買家確認購買時,我需要清除購物車。如果我現在將購物車保存到數據庫,那麼已經保存在數據庫中並與購物車相關聯的cartitems應該發生什麼變化?我應該從db中刪除它們嗎?如何清除購物車中的cartitems
實體的JPA映射是
@Entity
class ShoppingCart{
...
@OneToOne
public Buyer buyer;
@OneToMany(mappedBy="cart", cascade=CascadeType.ALL)
public Set<CartItem> cartItems;
...
}
@Entity
public class CartItem{
@ManyToOne
public ShoppingCart cart;
@OneToOne
public Product pdt;
public int quantity;
...
}
}
在分貝購物車表
id | buyer_id
-----+-------------
100 | 50
cartitem表可以
id | quantity | product_id | cart_id
-----+----------+------------+---------
12 | 2 | 234 | 100
--------------------------------------
13 | 4 | 231 | 100
所以之後我清空購物車,並將其保存到分貝,如果這些項目仍然在分貝,這將意味着cartitem 12仍然指購物車100.但是,購物車與id = 100,因爲我清除了它們,所以沒有cartitems。 那麼,清理購物車並將其保存到db相當於刪除購物車? 如何映射這種行爲?或者我的思想存在缺陷?
檢查您的JPA提供程序是否支持像Hibernate「delete-orphan」這樣的東西,因爲JPA不提供這樣的東西。 – Augusto
爲什麼你需要保存購物車?它可以在不同的會話中重用嗎? – jasalguero
我假設任何時候應用程序中的購物車狀態應該與其狀態相同 – jimgardener