Could you please provide a sample test case?
On 22 Dec 2009, at 00:27, t3jem wrote:
> ok, so it appears the best way is to query the key only. I have set
> it up to do that, except now I'm having an issue where the parent
> object is not storing the child's key.
>
> Below is to show how I set up my classes to save a reference to the
> child classes
>
> @PersistenceCapable
> class parent {
> @PrimaryKey
> @Persistent
> Key key;
>
> //other private variables
>
> @Persistent
> Key childKey;
> }
>
> The issue is that when I make the parent class persistent, for some
> reason the child key becomes null. It is set in the constructor as
> the value of the child's key (I call a static method to create the
> child object then return the key). I know the key returned is not
> null through some debugging.
>
> Why would a persistent Key stay transient? The docs say that Keys are
> persistent capable
>
>
>
> On Dec 21, 4:32 pm, Mike <[email protected]> wrote:
>> You can query the key only, hope this helps.
>>
>> http://code.google.com/appengine/docs/python/datastore/
>> queriesandinde...
>>
>> 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
> .
>
>
--
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.