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

हाइबरनेट + स्प्रिंग जेपीए कॉन्फ़िगरेशन में विदेशी कुंजी मानों को कैसे पॉप्युलेट करें जब माता-पिता/बाल ऑब्जेक्ट्स एक ही समय में बने रहें?

उस कोड में दो चीजें हैं जो इसे काम करने से रोकती हैं:

  1. आपकी संस्थाओं के पास कोई @Id नहीं है . आपने शायद इसे अभी छोड़ दिया क्योंकि यह एक उदाहरण है, लेकिन यह ध्यान देने योग्य है।
  2. आपने कॉलम को डबल-मैप किया है parent_id . बच्चे के पास एक ही कॉलम में मैप किए गए लंबे फ़ील्ड और पैरेंट फ़ील्ड दोनों हैं। लॉन्ग से छुटकारा पाएं। यह माता-पिता का रिश्ता है जिसके बाद आप हैं।

उसके बाद, आपके पास एक जॉइन कॉलम के साथ एक पूरी तरह से पारंपरिक द्विदिश एक-से-कई है। यदि यह आपके लिए काम नहीं कर रहा है, तो आप उस कोड में कुछ गलत कर रहे हैं जहां आप उन्हें बनाते और सहेजते हैं। बहुत शायद, आप वस्तुओं को ठीक से नहीं बना रहे हैं। इन निकायों का उपयोग करने वाला सही कोड कुछ इस तरह दिखाई देगा:

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Parent p = new Parent();
Child child = new Child();
child.parent = p;
Child child1 = new Child();
child1.parent = p;
p.children = Arrays.asList(child, child1);
session.save(p);
session.save(p.children.get(0));
session.save(p.children.get(1));
tx.commit();

विशेष रूप से ध्यान दें कि बच्चे में माता-पिता के साथ-साथ माता-पिता में भी बच्चे को स्थापित किया जाना चाहिए। आधा टूटा हुआ ऑब्जेक्ट मॉडल न बनाएं और हाइबरनेट से आपकी गड़बड़ी को साफ करने की अपेक्षा करें। बहुत से लोग इस स्पष्ट रूप से स्पष्ट आवश्यकता को अनदेखा करते हैं और आश्चर्य करते हैं कि हाइबरनेट अस्थिर और/या अविश्वसनीय क्यों लगता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कई कनेक्शन त्रुटियों के कारण होस्ट 'होस्टनाम' अवरुद्ध है; 'mysqladmin फ्लश-होस्ट' के साथ अनब्लॉक करें

  2. Android पर AMP (apache mysql php) चलाना

  3. मैं किसी तालिका के स्तंभों की गणना कैसे करूं

  4. PHP अल्पविराम को <br /> . में बदल देता है

  5. आपको mysql_fetch_assoc का 1 से अधिक बार उपयोग क्यों नहीं करना चाहिए?