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

हाइबरनेट @ संस्करण डेटाबेस विदेशी कुंजी बाधा विफलता का कारण बनता है

पहले :

आपके FK को संदर्भित निकाय के PK का संदर्भ देना चाहिए। इस मामले में, आपके पास person.conference_room_id होना चाहिए जो conferenceroom.id . का संदर्भ देता है . अगर आप अपना code चाहते हैं ConferenceRoom . के लिए पहचान क्षेत्र होने के लिए इकाई, फिर सरोगेट कुंजी का उपयोग न करें। अगर code कॉलम पीके उम्मीदवार नहीं है, तो यह एफके उम्मीदवार भी नहीं है।

दूसरा :

मर्ज करें :

जारी रखें :

मुझे लगता है कि आप भ्रमित हो गए हैं merge persist . के साथ . दिए गए कोड से मैं जो बता सकता हूं, उससे आप एक नया ConferenceRoom बना रहे हैं और किसी मौजूदा को संशोधित नहीं करना। इसलिए, merge आप वह नहीं करने जा रहे हैं जो आप करना चाहते हैं। अपनी (प्रदान की गई) विधि को निम्न में बदलने का प्रयास करें:

public ConferenceRoom getNewConferenceRoom(Person p) {
    ConferenceRoom r = new ConferenceRoom();
    r.setCode("MyUniqueGeneratedCode");
    r.getPeople().add(p);
    // sessionFactory is spring injected member
    sessionFactory.getCurrentSession().persist(r); 
}

आपके द्वारा उठाए गए मुद्दों को इन बातों से ठीक करना चाहिए।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सभी उत्पादों, श्रेणियों और मेटा डेटा प्राप्त करने के लिए SQL क्वेरी woocommerce/wordpress

  2. java.sql.SQLException पैरामीटर सूचकांक सीमा से बाहर है (1> मापदंडों की संख्या, जो 0 है)

  3. जावा से MySQL डेटाबेस बनाएं

  4. PHP Openssl एक एईएस माइस्क्ल एन्क्रिप्शन को डिक्रिप्ट करता है

  5. MySQL:ग्रुप बाय में नहीं है