PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

स्प्रिंग एमवीसी में ऑटो जनरेट आईडी

यदि आप स्वचालित रूप से 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 . को सहेजने का प्रयास करेंगे प्राथमिक कुंजी . के मान के रूप में मान , जिसमें एक गैर-शून्य . है बाधा, तो आपको वह त्रुटि मिल गई है।

साथ ही, इकाई . का उपयोग करते हुए ग्राहक के साथ संचार के साधन के रूप में वस्तुएं, उदा। Product , अच्छा अभ्यास नहीं है। फॉर्म या डीटीओ जैसे कुछ सहायक सार को परिभाषित करने का प्रयास करें और फॉर्म हैंडलिंग या प्रतिक्रिया संयोजन के लिए उनका उपयोग करें।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऑर्डर_बी कई-से-अनेक फ़ील्ड पर क्वेरीसेट में डुप्लिकेट प्रविष्टियाँ उत्पन्न करता है

  2. मैं PostgreSQL में टाइमस्टैम्प को स्वचालित रूप से कैसे अपडेट करूं

  3. PostgreSQL/NodeJS के साथ परिणामों की सरणी के रूप में तालिका में शामिल हों प्राप्त करें

  4. Postgres डेटाबेस की एन्कोडिंग प्राप्त करना

  5. ऑर्डर बाय के साथ विभाजन में पंक्तियों की गणना करें