2016-08-19 15 views
9

में पृष्ठ पृष्ठ पर नक्शा कैसे करें जब मैं PagingAndSortingRepository.findAll(Pageable) के साथ डेटाबेस हिट करता हूं तो मुझे Page<ObjectEntity> मिलता है। हालांकि, मैं डीटीओ को क्लाइंट को बेनकाब करना चाहता हूं, न कि संस्थाओं को। मैं सिर्फ डीटीओ को अपने कन्स्ट्रक्टर में इकाई इंजेक्ट करके बना सकता हूं, लेकिन मैं डीटीओ के पेज ऑब्जेक्ट में इकाइयों को कैसे मैप कर सकता हूं? वसंत दस्तावेज के अनुसार, पृष्ठ केवल पढ़ने के लिए संचालन प्रदान करता है। वसंत-डेटा-आराम

इसके अलावा, पेज.मैप संभावना नहीं है, क्योंकि हमारे पास जावा 8 के लिए समर्थन नहीं है। मैप किए गए ऑब्जेक्ट्स के साथ नया पृष्ठ मैन्युअल रूप से कैसे बनाएं? धन्यवाद @Ali Dehghani

private Page<ObjectDTO> mapEntityPageIntoDTOPage(Page<ObjectEntity> objectEntityPage) { 
     return objectEntityPage.map(new Converter<ObjectEntity, ObjectDTO>() { 
      public ObjectDTO convert(ObjectEntity objectEntity) { 
       return new ObjectDTO(objectEntity, httpSession); 
      } 

     }); 
    } 
+2

मुझे यकीन है कि नहीं कर रहा हूँ, लेकिन मुझे लगता है कि आप लैम्ब्डा भाव के बिना 'Page.map' उपयोग कर सकते हैं। बस 'कनवर्टर <' का एक उदाहरण पास करें? सुपर टी,? एस> ' –

+1

बढ़ाता है यह सही है –

उत्तर

16

तुम अब भी Page.map लैम्ब्डा भाव के बिना उपयोग कर सकते हैं

Page<ObjectEntity> entities = 
objectEntityRepository.findAll(pageable) 
.map(ObjectDto::fromEntity); 

कहाँ सेन्टिटी ऑब्जेक्ट पर एक स्थैतिक विधि है जिसमें रूपांतरण तर्क शामिल है।

2

यहाँ मेरी समाधान है,:

0

करने और java8 में

Page<ObjectEntity> entities = objectEntityRepository.findAll(pageable); 
Page<ObjectDto> dtoPage = entities.map(new Converter<ObjectEntity, ObjectDto>() { 
    @Override 
    public ObjectDto convert(ObjectEntity entity) { 
     ObjectDto dto = new ObjectDto(); 
     // Conversion logic 

     return dto; 
    } 
}); 
0

वसंत डेटा 2 में, पृष्ठ मानचित्र विधि कनवर्टर के बजाय एक फ़ंक्शन लेती है, लेकिन यह अभी भी मूल रूप से @ एली देघानी के रूप में वर्णित है।

का उपयोग फंक्शन:

Page<ObjectEntity> entities = objectEntityRepository.findAll(pageable); 
Page<ObjectDto> dtoPage = entities.map(new Function<ObjectEntity, ObjectDto>() { 
    @Override 
    public ObjectDto apply(ObjectEntity entity) { 
     ObjectDto dto = new ObjectDto(); 
     // Conversion logic 

     return dto; 
    } 
});