मान लीजिए कि मेरे पास लाखों पंक्तियों वाली एक तालिका है। JPA का उपयोग करना, उस तालिका के विरुद्ध क्वेरी पर पुनरावृति करने का उचित तरीका क्या है, जैसे कि मेरे पास लाखों वस्तुओं के साथ सभी इन-मेमोरी सूची नहीं है ?
उदाहरण के लिए, मुझे संदेह है कि यदि तालिका बड़ी है तो निम्नलिखित को झटका लगेगा:
List<Model> models = entityManager().createQuery("from Model m", Model.class).getResultList();
for (Model model : models)
{
System.out.println(model.getId());
}
क्या पेजिंग (लूपिंग और मैन्युअल रूप से अपडेट करना setFirstResult()
/ setMaxResult()
) वास्तव में सबसे अच्छा समाधान है?
संपादित करें : मेरे द्वारा लक्षित प्राथमिक उपयोग-मामला एक प्रकार का बैच कार्य है। यह ठीक है अगर इसे चलाने में लंबा समय लगता है। कोई वेब क्लाइंट शामिल नहीं है; मुझे बस एक बार में प्रत्येक पंक्ति (एक या कुछ छोटे एन) के लिए "कुछ करने" की आवश्यकता है। मैं बस एक ही समय में स्मृति में उन सभी से बचने की कोशिश कर रहा हूं।