PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tự động tạo id trong Spring MVC

Nếu bạn muốn tự động tạo id , sau đó không cung cấp một, ngay cả khi nó null . Vì vậy, hãy xóa id từ addProduect phương pháp:

@Override
public void addProduct(String description, double price, Date date) {
    jdbcTemplate.update("INSERT INTO products values(?, ?, ?)", description, price, date);
}

Ngoài ra, hãy tạo id của bạn trường auto-increment , như trong câu hỏi này .

Hoặc thay đổi addProduct và sử dụng EntityManager#persist phương pháp:

@Override
public void addProduct(Product product) {
    entityManager.persist(product);
}

Về lỗi:

Vì biểu mẫu của bạn không lấy id giá trị từ máy khách, /newproduct điểm cuối sẽ có Product với null dưới dạng id của nó giá trị:

@RequestMapping(value = "/newproduct", method = RequestMethod.POST)
public ModelAndView submitForm(@ModelAttribute("product") Product product) { ... }

Sau đó, bạn chuyển null này giá trị làm tham số cho addProduct phương pháp:

prDao.addProduct(product.getId(), ...)

Và cuối cùng là addProduct sẽ cố gắng lưu null đó giá trị như giá trị của Khóa chính , có một Không rỗng ràng buộc, vì vậy bạn gặp lỗi đó.

Ngoài ra, bằng cách sử dụng Thực thể các đối tượng làm phương tiện giao tiếp với khách hàng, ví dụ:Product , không phải là một thực hành tốt. Cố gắng xác định một số trừu tượng bổ trợ như Biểu mẫu hoặc DTO và sử dụng chúng để xử lý biểu mẫu hoặc tập hợp phản hồi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. C # .NET + PostgreSQL

  2. cách thực hiện tìm kiếm lượt like trong postgresql và node js

  3. Mẹo điều chỉnh hiệu suất PostgreSQL

  4. Tính toán kết quả Doanh thu Định kỳ Hàng tháng (MRR) bằng cách sử dụng bưu điện

  5. Cách tạo người dùng chỉ đọc trong PostgreSQL