It turns out the technique I described in my previous post has two issues. 1. Because only one transaction can be running at a time within a process, and the entity used as the mutex really cannot be in the same entity group as the primary entity, you can get into a situation where the mutex entity is orphaned if one transaction succeeds and the following transaction fails. The orphaned mutex entity then prevents anyone for using it's version of the unique fields.
2. This solution, when used with JDO or JPA, is very verbose and obfuscates the primary intent of the code. Also, you would never to do this with an SQL datastore, so it limits the portability of the code, which is why one would choose JDO/JPA in the first place. Really, we want the uniqueness annotations to be implemented. There is an issue in the bugbase for this, issue 178. Folks have been talking about this for a long time. Please star this issue if it is important to you. http://code.google.com/p/googleappengine/issues/detail?id=178 -- 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 google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.