1. Transactional units are 'Entity Groups', not 'Entities'. Existence of 
entities is irrelevant, just whether or not there is a concurrent change to the 
group.
2. Entity groups are represented by keys, and nothing else. You might have an 
entity stored with that key, but that is not meaningful except to say that 
entity belongs in that group for transactional purposes.
3. Transactions are almost more definately nuanced than 'last updated time 
stamp' - don't worry about how they work, you just need to trust they do. This 
is true of every persistence software youve ever used.
4. To address your specific question, whether an entity does or does not exist 
can be tested and acted on in the confines of a transactional boundary. If your 
transaction fails, when you rerun it you will need to test the existence again 
(hence idempotent comment from Jeff).

5. If you are going to write a test to verify this behavior, be aware that 
you'll need to deploy that to ensure you're testing the right things. The dev 
servers behave differently at a low level to the actual datastore. I think you 
will struggle to test this behavior until you fully understand how transactions 
work, though. False positives, etc. Read the docs again.

I hope that helps,

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/16c0f597-00be-49e7-8133-36a23916f7ff%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to