You can query the key only, hope this helps. http://code.google.com/appengine/docs/python/datastore/queriesandindexes.html#Queries_on_Keys
On Dec 21, 8:51 pm, Jess Evans <[email protected]> wrote: > Be wary of a try/get/catch/persist combo. I was doing this initially, but > found it triggered a memory leak. I resorted to a query by business key. I > can't confirm whats most efficient. It's certainly not in terms of index > storage overhead. I just wanted to throw out the warning. > > On Dec 21, 2009 12:08 PM, "t3jem" <[email protected]> wrote: > > Ok, > > So I'm writing my first game using the Google App Engine and have been > finding that using RPC and the datastore is much different than I'm > use to. I've managed to get along, but I'm pretty stuck on this one, > I can't find it anywhere. > > My problem is, I need to be able to create a new object with a unique > ID when a new user logs into the game. I was doing this by randomly > generating a key and then using a query to the datastore to retrieve > an object by that ID. If nothing turns up then I persist the new > object with that ID. I understand that with an exceedingly great > amount of users this method could become a bit slow, but I don't > intend to have more than 1000 objects of this type in the datastore so > I don't foresee any problems with this method (please tell me if I'm > terribly mistaken). > > I get my error when I go to attempt a retrieval of the missing object > from the datastore. I use PersistenceManager.getObjectById(foo.class, > Key) > > when my program reaches the call it throws a > NucleusObjectNotFoundException. I understand this is probably normal > behavior, the problem is, I can't seem to find a way to check if the > key already exists in the datastore or not. > > Is there a cheap way to check for a key? the only other method I can > think of is to get a collection of all the objects of that class and > check the created key against all existing ones, but that seems much > to expensive. > > Thank you for your time > > -- > > You received this message because you are subscribed to the Google Groups > "Google App Engine for Java" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine-java%2B > [email protected]> > . > For more options, visit this group > athttp://groups.google.com/group/google-appengine-java?hl=en. -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" 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-java?hl=en.
