MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

2 डेटाबेस का उपयोग करते समय जेवर ENTITY_INSTANCE_WITH_NULL_ID

जब आप JaVers के लिए कोई ऑब्जेक्ट कमिट करते हैं, तो इसका पिछला संस्करण JaversRepository से लोड किया जाता है और वर्तमान संस्करण के साथ तुलना की जाती है (वह संस्करण जिसे आपने अभी-अभी कमिट () विधि में पास किया है)। इस मामले में JaVers GlobalId क्वेरी इसलिए टाइपनाम + इकाई आईडी। यही कारण है कि आईडी संस्थाओं के लिए शून्य नहीं हो सकती।

दो संभावनाएं हैं:

  1. यदि इस वर्ग में शून्य आईडी सामान्य है (आपके डोमेन मॉडल के अनुसार) तो आपको इसे ValueObject जावर्स में।
  2. यदि आप हाइबरनेट का उपयोग कर रहे हैं, तो आलसी लोडिंग प्रॉक्सी के साथ आम समस्या है। कुछ प्रश्नों के लिए, हाइबरनेट आपके वास्तविक डोमेन ऑब्जेक्ट्स को वापस नहीं करता है लेकिन गतिशील प्रॉक्सी ऑब्जेक्ट्स जो अनिवार्य रूप से खाली हैं (इसलिए शून्य आईडी)। यह तकनीक शायद स्मार्ट दिखती है, लेकिन आपकी वस्तुओं को तब तक कचरा बना देती है जब तक कि वे हाइबरनेट द्वारा आरंभ नहीं कर दी जाती हैं। हुक">हाइबरनेटUnproxyObjectAccessHook जो सफाई करता है:आपके डोमेन ऑब्जेक्ट को इनिशियलाइज़ करना और अन-प्रॉक्सी करना।

    JaversBuilder.javers ()। withObjectAccessHook (नया HibernateUnproxyObjectAccessHook ())। निर्माण ()

यह हुक डिफ़ॉल्ट रूप से javers-spring-boot-starter-sql . में सक्षम होता है लेकिन javers-spring-boot-starter-mongo . में नहीं . यदि आप मोंगो स्टार्टर का उपयोग कर रहे हैं, तो अपने दम पर एक JaVers बीन बनाएं, जिसमें हुक सक्षम हो, देखें JaversMongoAutoConfiguration



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. dbpath बदलने के बाद MongoDB /etc/mongodb.conf का उपयोग नहीं कर रहा है

  2. लोचदार खोज में एक खोज प्रतिक्रिया का परिणाम प्राप्त करना

  3. arrayFilters के साथ फ़िल्टर किए गए पोजिशनल ऑपरेटर का उपयोग करके अपडेट कैसे लागू करें

  4. MongoDB और Robomongo:कनेक्ट नहीं हो सकता (प्रमाणीकरण)

  5. मोंगो डेटाबेस को क्वेरी करने के लिए सर्चबार के साथ वेबसाइट कैसे बनाएं?