java - यह स्प्रिंग.जापा क्या है।




spring jpa (2)

मैंने JPA कॉन्फ़िगरेशन स्प्रिंग के लिए इस प्रॉपर्टी को स्प्रिंग बूट डॉक्यूमेंटेशन में देखा spring.jpa.open-in-view=true । वैसे, यह सच के रूप में सेट किया गया था, तो क्या यह डिफ़ॉल्ट मान है?

इसका वास्तव में क्या अर्थ है? मुझे इस व्यवहार के लिए कोई व्याख्या नहीं मिली।

यह EntityManagerFactory बजाय हाइबरनेट SessionFactory का उपयोग करना चाहिए? यदि हाँ, तो मैं EntityManagerFactory को कैसे सेट कर सकता हूं?

किसी भी मदद की सराहना करें।

धन्यवाद!


दुर्भाग्य से, OSIV (ओपन सेशन इन व्यू) स्प्रिंग बूट में डिफ़ॉल्ट रूप से सक्षम है , और OSIV वास्तव में एक प्रदर्शन और मापनीयता के दृष्टिकोण से एक बुरा विचार है

तो, सुनिश्चित करें कि application.properties कॉन्फ़िगरेशन फ़ाइल में, आपके पास निम्न प्रविष्टि है:

spring.jpa.open-in-view=false

यह OSIV को अक्षम कर देगा ताकि आप LazyInitializationException को सही तरीके से संभाल सकें।

संस्करण 2.0 से शुरू होकर, स्प्रिंग बूट एक चेतावनी जारी करता है जब OSIV डिफ़ॉल्ट रूप से सक्षम होता है, इसलिए उत्पादन प्रणाली को प्रभावित करने से पहले आप इस समस्या का पता लगा सकते हैं।


यह गुण एक OpenEntityManagerInViewInterceptor को पंजीकृत करेगा, जो एक EntityManager को वर्तमान थ्रेड में पंजीकृत करता है, इसलिए आपके पास एक ही EntityManager जब तक कि वेब अनुरोध समाप्त नहीं हो जाता। इसका हाइबरनेट SessionFactory आदि से कोई लेना-देना नहीं है।





spring-data