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.

Reply via email to