You say

"... I have to perform datastore transactions on
entities which have no parent. Unless I misunderstood, this is not
possible."

Even though, in my view, this topic should be discussed on
StackOverflow instead of here, I disagree with what you say; this
**is** possible.

My application exchanges data with the datastore using transactions
(and JDO), which can involve persistent entities that do not have an
entity parent. (As we know, every persistent entity group must contain
exactly one entity which has no entity parent.)


On 11 Oct, 10:00, Richard Watson <richard.wat...@gmail.com> wrote:
> Yup, that's fine. I believe the datastore will always allow keys to
> entities that don't exist, because it doesn't attempt to maintain
> referential integrity between entities.  There are no cascading deletes,
> say.  There's no other solution I'm aware of, and this is pretty central to
> the datastore so I doubt there will be a different mechanism. When you need
> consistency, provide an ancestor. When you don't, don't.
>
> Just a reminder that that there's a rate limit on entities with the same
> ancestor, so don't use the same one if you're likely to get multiple
> simultaneous writes as your app grows in popularity.
>
> Richard
>
>
>
>
>
>
>
> On Thursday, October 11, 2012 9:43:31 AM UTC+2, Olivier Truemat wrote:
>
> > Hi,
>
> > For a given application, I have to perform datastore transactions on
> > entities which have no parent. Unless I misunderstood, this is not possible.
>
> > In order to avoid creating dummy entities in the datastore, I am creating
> > a "fake ancestor" key to an entity that does not exists in the datastore.
>
> > I would have two questions related to this :
>
> > --> Is there any other solution to have transactions with no entity being
> > the parent ?
> > --> Will this solution be supported in the long-term by Google ? Just
> > would like to avoid being in a dead-end when an upgrade is rolled-out.
>
> > public class AAA {
>
> >     @Parent Key<AAA> ancestorKey; // This is a hack to make sure we can
> > support transactions
> >     @Id     Long Id;
> >     // OTHER FIELDS
>
> >     public static Key<AAA> getAncestorKey() {
> >         return( new Key<AAA> (AAA.class, new Long("1")));
> >     }
> > }

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to