PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Автоматично генериране на идентификатор в Spring MVC

Ако искате автоматично да генерирате id , тогава не предоставяйте такъв, дори да е null . Така че премахнете id от addProduect метод:

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

Освен това направете своя id поле auto-increment , както в този въпрос .

Или променете addProduct и използвайте EntityManager#persist метод:

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

Относно грешката:

Тъй като вашият формуляр не приема id стойност от клиента, /newproduct крайната точка ще има Product с null като неговия id стойност:

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

След това предавате този null стойност като параметър към addProduct метод:

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

И накрая addProduct ще се опита да запази този null стойност като стойността на първичния ключ , който има не-нулево ограничение, така че получавате тази грешка.

Освен това, използвайки Entity обекти като средство за комуникация с клиента, напр. Product , не е добра практика. Опитайте се да дефинирате някои спомагателни абстракции като формуляри или DTO и да ги използвате за обработка на формуляри или сглобяване на отговор.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. В psql как да стартирам цикъл за заявка за избор с CTE и да получа показания изход, ако го стартирам в db само за четене?

  2. защо не мога да видя размера на моята схема

  3. Какъв е правилният начин за работа с резултати от поточно предаване на slick 3.0.0 и Postgresql?

  4. персонализирайте пейджър в psql

  5. Как да внедрите високодостъпен PostgreSQL с единична крайна точка за WordPress