सबसे पहले, तथ्य यह है कि आपको एक प्रश्न के लिए 2000 से अधिक आईडी (आपके पहले बिंदु के आधार पर) पास करने की आवश्यकता है, यह अपने आप में एक चेतावनी घंटी है। शायद अंतर्निहित समस्या को हल करने का एक बेहतर तरीका है।
आप दृष्टिकोण # 2 का उपयोग कर सकते हैं और प्रत्येक सूची को सॉर्ट कर सकते हैं, फिर एप्लिकेशन के भीतर विलय कर सकते हैं। इसके लिए अतिरिक्त कोड की आवश्यकता होगी, लेकिन संभावना है (मान लें कि वास्तविक क्वेरी अपेक्षाकृत तेज़ है) दृष्टिकोण #3 से बेहतर प्रदर्शन करेगी।
#3 के लिए, अस्थायी तालिकाओं से निपटने के 2 बड़े नुकसान हैं:
- जबकि हाइबरनेट उनका समर्थन करता है (देखें
Table.sqlTemporaryTableCreateString
विधि, यहDialect
. में सहायक विधियों के एक समूह का उपयोग करती है क्लास), वे आंतरिक रूप से उपयोग किए जाते हैं और ऐप से पहुंच योग्य होने के लिए आपकी ओर से अतिरिक्त कोडिंग की आवश्यकता होगी। - अधिक महत्वपूर्ण बात यह है कि अस्थायी तालिका का उपयोग करने से आप अपनी क्वेरी को मूल SQL के रूप में लिखने के लिए बाध्य होंगे (क्योंकि इसे मैप नहीं किया जाएगा)। यदि आप मानदंड API का उपयोग कर रहे हैं तो आपको
sqlRestriction
. का उपयोग करना होगा एक सबक्वेरी के साथ।