2011-08-11 15 views
9

मैं अपने RPC सेवा में इस विधि है:objectify पेजिंग

@Override 
    public Entrata[] getEntrate(int from, int to) { 
     List<Entrata> data = entrateDao.list(); 
     return data.toArray(new Entrata[0]); 
    } 

आप देखते हैं, मैं दो पैरामीटर उपयोग नहीं कर रहा है, जो, किसी SQL दुनिया में, मैं सीमा के रूप में इस्तेमाल करते हैं और OFFSET होगा सकते हैं ।

यह नहीं पूरी तरह से स्पष्ट मैं अब क्या करना है, मैं इस पढ़ना शुरू किया है: http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Cursors

मुझे लगता है कि मैं एक query.startCursor()

फिर "के लिए" समय के लिए पुनरावृति करना है, पृष्ठ का आकार

ठीक है? क्या आप मुझे कुछ स्निपेट्स के साथ मदद कर सकते हैं? :)

उत्तर

15

डॉक्स से: कर्सर आप एक "चौकी" एक प्रश्न परिणाम सेट में ले, चौकी कहीं और की दुकान, और फिर जहां देर से दूर छोड़ दिया

तुम सिर्फ सीमित कर/ऑफसेट की जरूरत के रूप में फिर से शुरू करते हैं से , आपको ऑब्जेक्टिफ़ क्वेरी के limit() और offset() विधि का उपयोग करना होगा। जैसा:

ob.query(Entrata.class).limit(to - from).offset(from) 

या, आप कर्सर है जब:

String cursor = // get it from request 
Query<Entrata> query = ob.query(Entrata.class); 
Query q = query.startCursor(Cursor.fromWebSafeString(cursor)); 
q.limit(x); 
QueryResultIterator<Entrate> iterator = query.iterator() 
List<Entrate> data = // fetch data 
String newCursor = iterrator.getStartCursor().toWebSafeString() 
return new EntrataListWithCursor(data, cursor); 
+0

कुशल नहीं, माफ करना, मैं पहले से ही पता है कि http://stackoverflow.com/questions/6861897/objectify-paging मैं कोशिश कर रहा हूँ एक ऐप बनाने के लिए जो रिकॉर्ड के द्विआधारी को संभाल सकता है: - \ –

+0

यदि आप कर्सर जानते हैं, तो उनके साथ सीमा-ऑफसेट व्यवहार करने का कोई तरीका है? –

+0

आप कर्सर से शुरू कर सकते हैं (कर्सर केवल एक क्रमबद्ध स्थिति है), अगर आप _already_ है। आप इस विधि का उपयोग करने की योजना कैसे बना रहे हैं? –

संबंधित मुद्दे