मेरे पास एक बड़ी तालिका है जिसे मैं स्प्रिंग डेटा रिपोजिटरी के माध्यम से एक्सेस करना चाहता हूं।स्प्रिंग डेटा रिपोजिटरीज का उपयोग करके डेटा के बड़े सेट को कैसे संभालें?
वर्तमान में, मैं PagingAndSortingRepository
इंटरफ़ेस विस्तार करने के लिए कोशिश कर रहा हूँ, लेकिन यह मैं केवल तरीकों कि वापसी सूची, उदा .:
public interface MyRepository extends
PagingAndSortingRepository<MyEntity, Integer>
{
@Query(value="SELECT * ...")
List<MyEntity> myQuery(Pageable p);
}
दूसरी ओर, findAll()
विधि है कि PagingAndSortingRepository
रिटर्न के साथ आता है परिभाषित कर सकते हैं लगता है एक Iterable
(और मुझे लगता है कि डेटा स्मृति में लोड नहीं है)।
क्या कस्टम प्रश्नों को परिभाषित करना संभव है जो Iterable लौटाते हैं और/या सभी डेटा को स्मृति में एक बार लोड नहीं करते हैं?
क्या बड़ी टेबल को संभालने के लिए कोई विकल्प हैं?
'सूची' 'Iterable' इंटरफ़ेस लागू करता है, इसलिए आपकी कस्टम क्वेरी विधि 'Iterable' लौटाती है। – zagyi
मुझे लगता है कि जब मैं findAll() का उपयोग करता हूं, तो स्प्रिंग डेटा स्मृति में सबकुछ लोड नहीं करता है, क्या मैं गलत हूं? मैं सवाल संपादित करूंगा। –
[अंतर्निहित कार्यान्वयन] (https://github.com/SpringSource/spring-data-jpa/blob/master/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java#L247) बस एक सूची पुनर्प्राप्त करता है, इसलिए यह परिष्कृत नहीं है। – zagyi