मैं लिंक हाइबरनेट के लिए रणनीति लाने net.One संक्षिप्त और संक्षिप्त लिंक पर मैं इसे पसंद किया में से कुछ के माध्यम से चले गए हैं http://www.mkyong.com/hibernate/hibernate-fetching-strategies-examples/ है। हमारे पास चार प्रकार की fetch रणनीतियों है। ये हैं: -fetchmode के साथ fetchtype के हाइबरनेट और संबंध में लाने की रणनीतियों के बारे में कुछ सवाल?
- fetch- "join" = आलसी लोडिंग को अक्षम करें, हमेशा सभी संग्रह और इकाइयों को लोड करें।
- fetch- "चयन करें" (डिफ़ॉल्ट) = सभी संग्रह और संस्थाओं को आलसी लोड करें।
- बैच आकार = "एन" = 'एन' संग्रह या संस्थाओं के लिए ऊपर ला रहा है, रिकॉर्ड नहीं है।
- fetch- "उप-चयन" = अपने संग्रह को उप-चयन कथन में समूहित करें।
मेरा पहला सवाल जो ऊपर से एक उत्सुक या lazyloading लाने प्रकार के लिए योग्य नहीं रहा?
जैसे ही मैं के रूप में उत्सुक है, मैं केवल के साथ छोड़ दिया हूँ शामिल होने लाने fetchtype उल्लेख मेरे प्रश्नों को बढ़ाने के लिए के बारे में हाइबरनेट मेरी विभाग वर्ग
@OneToMany(mappedBy = "department", cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@Fetch(value = FetchMode.SELECT)
@BatchSize(size = 10)
private Set<EmployeeData> employees = new HashSet<EmployeeData>();
मेरी समझ के अनुसार में रणनीतियों कोड स्निपेट नीचे मैं विचार कर रहा हूँ लाने रणनीति लेकिन जब मैं lazyloading के रूप में fetchtype के रूप में उल्लेख करते हैं, तो मेरे पास अन्य तीन विकल्प यानी चयन, बैच आकार और उप-चयन है। सहमत हुए? अब यदि मैं एक मेरी विरासत परियोजना में कोड स्निपेट देखता हूं, तो उसने फेयर प्रकार को उत्सुक और लाने की रणनीति के रूप में वर्णित किया है जो कि एक-दूसरे से विरोधाभासी है। सही?
एक और प्रश्न है जब मैं FetchMode लिखता हूं तो मुझे बैच-आकार विकल्प दिखाई नहीं देता है। और नियंत्रण + अंतरिक्ष ग्रहण में अंतरिक्ष हालांकि मैं अन्य तीन fetch रणनीतियों को देखते हैं?
कमाल और त्वरित स्पष्टीकरण –
+1 शानदार उत्तर –