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

स्प्रिंगडाटाजेपीए वनटूवन रिलेशनशिप को सेव करता है, चाइल्ड रो को जोड़ या अपडेट नहीं कर सकता:एक विदेशी कुंजी बाधा विफल हो जाती है

समस्या शायद आपकी आईडी पीढ़ी की रणनीति है (बशर्ते आपने संपर्क को ठीक से शुरू किया हो)। उपयोगकर्ता ऑब्जेक्ट को अपना आईडी सेट करने के लिए डीबी में डाला जाना चाहिए, लेकिन साथ ही संपर्क को इस आईडी को वैध वस्तु होने की आवश्यकता है। दोनों को करना होगा एक ही लेन-देन में होता है।

यदि आप अपने जेपीए के लिए लॉगिंग स्तर को फाइन में बदल देते हैं (पर्सटिटेंस.एक्सएमएल में), तो आपको उपयोगकर्ता और संपर्क डालने का क्रम दिखाई देगा, लेकिन संपर्क में user_id 0 होगा।

तो, ए) सुनिश्चित करें कि आपने अपने संपर्क में उपयोगकर्ता को स्पष्ट रूप से सेट किया है (जैसा कि आपने कहा था कि संबंध संपर्क द्वारा प्रबंधित किया जाता है। बी) उपयोगकर्ता पर संपर्क सेट करें। सी) जारी रखें (एक लेनदेन में)। आपके जेपीए कार्यान्वयन के आधार पर यह अभी भी काम नहीं कर सकता है (जारी किए गए प्रश्नों की जांच करें, सबसे अधिक संभावना संपर्क पर सम्मिलित होगी और फिर अपडेट होगी)। जेनरेशन रणनीति को टेबल में बदलें, टेबल जेपीए के साथ अगली मुफ्त आईडी लेता है, इसे ऑब्जेक्ट को असाइन करता है और इंसर्ट करता है ताकि इंसर्ट से पहले यह "ज्ञात" हो।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - कॉलम का नाम बदलें

  2. ग्लासफ़िश सर्वर पर किसी वेब सेवा में डेटाबेस का उपयोग करने के लिए 'कोई उपयुक्त ड्राइवर नहीं मिला' त्रुटि

  3. MariaDB रूट उपयोगकर्ता के लिए पासवर्ड और unix_socket प्रमाणीकरण सक्षम करें?

  4. MySql में IN क्लॉज का उपयोग करने का अलग तरीका

  5. MySQL रूट पासवर्ड कैसे रीसेट करें