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.
