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

दो डेटाबेस के साथ काम करने के लिए स्प्रिंग बूट को कैसे कॉन्फ़िगर करें?

* कई संग्रह हाइबरनेट और जेपीए में डिफ़ॉल्ट रूप से आलसी हैं। त्रुटि इसलिए है क्योंकि जैक्सन OneToMany को क्रमबद्ध करने का प्रयास कर रहा है जब इकाई प्रबंधक (हाइबरनेट-स्पीक में उर्फ ​​सत्र) बंद हो जाता है। इसलिए, आलसी संग्रहों को पुनः प्राप्त नहीं किया जा सकता है।

डिफ़ॉल्ट रूप से जेपीए के साथ स्प्रिंग बूट एक OpenEntityManagerInViewFilter provides प्रदान करता है प्राथमिक ईएम के लिए यह केवल-पढ़ने के लिए डीबी एक्सेस की अनुमति देता है, लेकिन, डिफ़ॉल्ट रूप से केवल प्राथमिक ईएम के लिए काम करता है।

आपके पास 3 विकल्प हैं:

1) आप एक जॉइन फ़ेच जोड़ सकते हैं, उदा। FetchMode कैसे काम करता है स्प्रिंग डेटा जेपीए में

2) आप गैर प्राथमिक निकाय प्रबंधक के लिए एक OpenEntityManagerInViewFilter जोड़ सकते हैं और इसे अपने संदर्भ में जोड़ सकते हैं।

कृपया ध्यान दें कि यह एक चुनौती है, प्रत्येक बार और फू इंस्टेंस के लिए, आपका ऐप OneToMany को पुनः प्राप्त करने के लिए डेटाबेस में वापस जाएगा। यह वह हिस्सा है जो बार के लिए काम नहीं कर रहा है, लेकिन फू के लिए है। इसका तात्पर्य एक स्केलेबिलिटी समस्या (कुछ लोगों द्वारा एन + 1 समस्या कहा जाता है) के रूप में प्रत्येक फू और बार के लिए, आप एक अतिरिक्त क्वेरी चलाते हैं, जो फूस और बार्स की गैर-तुच्छ मात्रा के लिए धीमी हो जाएगी।

3) एक विकल्प बार और फू पर अपने संग्रह को उत्सुक बनाना है (इसे देखें https://docs.oracle.com/javaee/7/api/javax/persistence/OneToMany.html#fetch-- ) लेकिन इसका सावधानीपूर्वक विश्लेषण करने की आवश्यकता है यदि मापनीयता आपके लिए बिल्कुल भी चिंता का विषय है।

मैं विकल्प #1 का सुझाव दूंगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तालिका को INSERT के लक्ष्य के रूप में और डेटा के अलग स्रोत के रूप में दो बार निर्दिष्ट किया गया है

  2. एक mysql अस्थायी तालिका है जो प्रत्येक उपयोगकर्ता को उस स्क्रिप्ट तक पहुंचने के लिए अद्वितीय है जो इसे बनाता है ...?

  3. परिणाम कॉलम नाम के रूप में तालिका के कॉलम मानों में शामिल हों का चयन करना

  4. लाइव अपडेट MySQL डेटा

  5. Django-mailer डेटाबेस को पुनर्स्थापित करते समय MySQL त्रुटि 1118 (पंक्ति आकार बहुत बड़ा)