2010-06-10 8 views
7

मुझे ऑब्जेक्ट्स का सरल पेजिनेशन बनाना होगा, लेकिन जब मैंने मैनुअल पढ़ा तो मुझे वह क्वेरी मिली .setRange (5, 10); 10 वस्तुओं को लाएगा, भले ही केवल 5 वस्तुओं की आवश्यकता हो।जावा के साथ Google ऐप इंजन में अंकन

क्या वैसे भी आवश्यक वस्तुओं को लाने के लिए वैसे भी है?

संपादित करें: मैंने बाउंटी शुरू की है, इसलिए आप मुझे जावा में सरल उदाहरण कोड दिखा सकते हैं जो काम करता है, तो मैं आपको जवाब स्वीकार करूंगा।

उत्तर

0

यदि आप पेजिनेशन करने की कोशिश कर रहे हैं, तो आप शायद सेटरेंज के बजाय cursors का उपयोग करना चाहते हैं।

1

App इंजन साइट पर यह बहुत ही विषय के बारे में एक लेख है:

http://code.google.com/appengine/articles/paging.html

उदाहरण पायथन में हैं, लेकिन वे काफी सरल है कि आप शायद काफी आसानी से जावा के लिए अनुवाद कर सकते हैं कर रहे हैं।

Here's a Java implementation, जिसे मैंने पढ़ा या परीक्षण नहीं किया है।

1

डेटाबेस से 10 ऑब्जेक्ट लौटाए जाने पर यह समस्या क्यों है? आपको अभी भी 5 वस्तुओं को वापस कर दिया जाएगा जिनकी आप परवाह करते हैं (पहले 5 को त्याग दिया जाता है)।

मैं नहीं पूछ रहा हूं क्योंकि मुझे लगता है कि सेटरेंज विधि एक ऐसा समाधान है जो अविश्वसनीय रूप से अच्छी तरह से स्केल करता है, लेकिन यह एक सरल और उचित समाधान है जो अच्छी संख्या में पर्याप्त मामलों में पर्याप्त है।

क्या आप अत्यधिक बड़ी टेबल पेजिंग करने या महंगे जुड़ने को शामिल करने की योजना बना रहे हैं? यदि नहीं, तो मैं आपके पेजिनेशन के लिए शुरुआती बिंदु के रूप में सेटरेंज का उपयोग करने का लुत्फ उठाऊंगा।

2

इस बारे में कैसे:

List<Employee> results = (List<Employee>) query.execute(); 
// Use the first 20 results... 

Cursor cursor = JPACursorHelper.getCursor(results); 
String cursorString = cursor.toWebSafeString(); 
// Store the cursorString... 

// ... 

// Query query = the same query that produced the cursor 
// String cursorString = the string from storage 
Cursor cursor = Cursor.fromWebSafeString(cursorString); 
query.setHint(JPACursorHelper.CURSOR_HINT, cursor); 
query.setRange(0, 20); 

List<Employee> results = (List<Employee>) query.execute(); 
// Use the next 20 results... 

से:

How to use datastore cursors with jpa on GAE

इसके अलावा:

http://groups.google.com/group/google-appengine-java/browse_thread/thread/5223215ff24c3b3e/d22297d1d76a9c8b

या जेपीए के बिना देखें:

http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Cursor.html