gpt4 book ai didi

java - Jpa存储库未删除

转载 作者:行者123 更新时间:2023-12-02 08:57:23 26 4
gpt4 key购买 nike

HTML

            <form th:action="@{/deleteCartItem(id=${produkt.product.id})}" th:object="${produkty}" method="post">
<div class="text-right">
<input type="submit" value="Delete" class="btn-sm btn-danger" />
</div>
</form>

购物车 Controller

@GetMapping("/kosik")
public String kosik(Principal principal,Model model){
User user = userServices.findByEmail(principal.getName());
Cart cart = cartServices.findCartByUser(user);
model.addAttribute("produkty",cartItemServices.findAllCartItems(cart));
model.addAttribute("cart",cartServices.findCartByUser(user));
model.addAttribute("user",user);
return "cart";
}

删除方法

@PostMapping("/deleteCartItem")
public String deleteCartItem(@ModelAttribute CartItem cartItem){
cartItemServices.deleteCartItem(cartItem.getCartItemId());
return "redirect:/kosik";
}

服务

public void deleteCartItem(Integer id){
cartItemRepository.deleteById(id);
}

购物车项目实体

@Entity
public class CartItem {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer cartItemId;
@NotNull
@Max(11)
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;

获取 cartitem id 有效,但我无法删除 cartItem.. 我也尝试过不通过 id 删除它,但立即删除 cartItem..

最佳答案

因为您的实体没有 id 字段作为主键。它不起作用。

在 CartItemRepository 中定义以下方法并使用它来删除对象。

Long deleteByCartItemId(Long id);

或者将 cartItemId 字段重命名为 id。

关于java - Jpa存储库未删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60412584/

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