Objectify is a thin wrapper library around the native low level java datastore api. It adds numerous convenience methods but doesn't stray from the low level api. In addition, it allows you to define your models as pojos using java annotations for things like numeric and string key ids, properties which are keys of a parent, etc. I wouldn't think of using anything else. The low level api examples I just gave you map very closely to how you would accomplish the same thing in Objectify.
You can read more about Objectify on their wiki at http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify. Jeff On Sat, Dec 4, 2010 at 12:05 PM, YF CAO <[email protected]> wrote: > thanks to Jeff Schwartz. > Objectify is very good ! > > thanks to Erick Fleming too. > > 2010/12/5 Jeff Schwartz <[email protected]> > >> Odd but I don't see him needing either cursors or 2 indexes to achieve his >> required result and it doesn't even need a filter condition. IMO it just >> requires a descending ordering with a limit of 1. >> >> On Sat, Dec 4, 2010 at 11:38 AM, Erick Fleming <[email protected]>wrote: >> >>> In Java you can use Query cursors to [1] limit your results. As far as >>> aggregate functions (like MIN and MAX) you can use [2] indexes to achieve >>> the similar result (ie. order by age and get the top result) >>> >>> [1] >>> http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html#Query_Cursors >>> <http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html#Query_Cursors> >>> [2] >>> http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html#Introducing_Indexes >>> <http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html#Introducing_Indexes> >>> On Sat, Dec 4, 2010 at 10:31 AM, Jeff Schwartz >>> <[email protected]>wrote: >>> >>>> Conceptually they are tables, but not in the same sense as SQL tables. >>>> They are more like a hash map and if you think of them in those terms you >>>> will be better served. >>>> >>>> Are you coding in Python or Java. If you are coding in Java then here's >>>> an example: >>>> >>>> query(Some.class).order('age').limit(1).get() >>>> >>>> >>>> On Sat, Dec 4, 2010 at 11:16 AM, Zeynel <[email protected]> wrote: >>>> >>>>> On Dec 4, 11:08 am, Tim Hoffman <[email protected]> wrote: >>>>> > Remember there are no tables. Just kinds representing models. >>>>> >>>>> I am confused by this statement. When I look at the Development >>>>> Console - Datastore Viewer; I see a table named after the model. In my >>>>> case, I have a table called User with columns "userEmail", "userName" >>>>> and so on. Each row in this table is what the documentation calls an >>>>> "instance" of the class. So what is the justification for the >>>>> statement that there are no tables? >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Google App Engine" group. >>>>> To post to this group, send email to [email protected] >>>>> . >>>>> To unsubscribe from this group, send email to >>>>> [email protected]<google-appengine%[email protected]> >>>>> . >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/google-appengine?hl=en. >>>>> >>>>> >>>> >>>> >>>> -- >>>> *Jeff Schwartz* >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Google App Engine" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]<google-appengine%[email protected]> >>>> . >>>> For more options, visit this group at >>>> http://groups.google.com/group/google-appengine?hl=en. >>>> >>> >>> >>> >>> -- >>> Erick Fleming >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Google App Engine" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<google-appengine%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/google-appengine?hl=en. >>> >> >> >> >> -- >> *Jeff Schwartz* >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google App Engine" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<google-appengine%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/google-appengine?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > -- *Jeff Schwartz* -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
