java - javax.persistence.EntityNotFoundException:具有多对一映射的 Spring Data JPA
问题描述
我使用这个 json 请求填充了 cart 和 caritem 类 -
{
"userId": "1246772",
"cartItemRequests": [
{
"itemId": "12345",
"quantity": 5
}
],
"discount": {
"promoCode": "MYPROMO",
"discountPercentage": 0
}
}
我在响应中看到此错误 - javax.persistence.EntityNotFoundException: Unable to find cart.model.CartItem with id d3931cb8-ab81-4c1b-b722-841c7fcf2f77。
当我调试代码时,我能够看到购物车中存在的 cartItem 列表“d3931cb8-ab81-4c1b-b722-841c7fcf2f77”。但是,当我使用 Spring Data JPA 保存时,我看到了上述错误
@Entity
public class CartItem {
@Id
private String id;
private String itemId;
private int quantity;
@ManyToOne
private Cart cart;
public CartItem() {
this.id = UUID.randomUUID().toString();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getItemId() {
return itemId;
}
public void setItemId(String itemId) {
this.itemId = itemId;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public Cart getCart() {
return cart;
}
public void setCart(Cart cart) {
this.cart = cart;
}
}
@Entity
public class Cart {
@Id
private String id;
private String userId;
@OneToMany(fetch = FetchType.LAZY)
private List<CartItem> cartItems;
@Embedded
private Discount discount;
public Cart() {
this.id = UUID.randomUUID().toString();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public List<CartItem> getCartItems() {
return cartItems;
}
public void setCartItems(List<CartItem> cartItems) {
this.cartItems = cartItems;
}
public Discount getDiscount() {
return discount;
}
public void setDiscount(Discount discount) {
this.discount = discount;
}
}
解决方案
您可以使用以下一项检查更新您的代码吗:---
@OneToMany(mappedBy = "Cart", fetch = FetchType.LAZY,
cascade = CascadeType.ALL)
private List<CartItem> cartItems;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
private Cart cart;
推荐阅读
- python - Python 作为一种动态类型的语言如何使得不需要使用抽象类/继承?
- javascript - How to avoid re-render in React?
- php - 如何比较两个表并显示每个差异?
- assembly - 如何通过 HLSL 在 asm 代码中获取“round_z”?
- multi-gpu - 带有 Tensorflow 2 的多 GPU 上的 Variable.assign(value)
- typescript - Vue 计算属性尚未更新,尽管它所依赖的数组已被显式重新分配
- python - 在python中,这是什么意思:a = L[x]
- deep-learning - Mesh-R-CNN 数据与 Colab 和 Pytorch3D
- bash - Shell 脚本从命令行工作,但不能从 cron
- azure-logic-apps - 为什么不能在 Azure 逻辑应用中识别服务器?