我在學習 spring 時做了這個例子,一切正常,現在我正在編寫自己的項目,我不明白為什么當我嘗試從EntityManager 類從 MySQL 數據庫中刪除對象產品類(我不會在此處粘貼所有方法,例如 getter 和 setter 等)import javax.persistence.*;@Entitypublic class Product { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String name; @OneToOne private ProductType type; private float price; private String description; //more code...}ProductRepository(我只顯示刪除方法)import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;import javax.transaction.Transactional;public class DBProductRepository implements ProductRepository{ @PersistenceContext private EntityManager entityManager; @Override @Transactional public void deleteProduct(Integer id) { entityManager.remove(id); } //more code...}ProductService(我只顯示刪除方法)@Servicepublic class ProductService { public void deleteProduct(Integer id) { productRepository.deleteProduct(id); } //more code...}產品控制器@Controllerpublic class ProductController { @RequestMapping("/products") public String getProducts(Model model){ List<Product> products = productService.getAllProducts(); model.addAttribute("products",products); return "products"; } @RequestMapping(value="/product/delete/{id}") public String deleteProduct(@PathVariable("id") Integer id){ productService.deleteProduct(id); return "redirect:/products"; } //more code...}
1 回答

富國滬深
TA貢獻1790條經驗 獲得超9個贊
EntityManager#remove
將實體實例作為參數。你正在路過Integer
。
改成:
@Override
@Transactional
public void deleteProduct(Product product) {
? ? entityManager.remove(product);
}
添加回答
舉報
0/150
提交
取消