Hi,
I can not create entity group because both are both classes can
exists independently, It can be unowned relation  between them.
I want both should be stored  in datastore or none of
these(Atomic behavior ) . If one entity is not stored other entity must not
store in datastore .

Didier's suggestion looks good , but i did not try .
*
*




On Thu, Dec 16, 2010 at 8:35 PM, WillSpecht <willspe...@gmail.com> wrote:

> Why do you want to store both in the same transaction? To me, it seems
> transactions are used to guarantee two things happen.  eg.  you don't
> want to delete one record without making sure the a log of deleted
> records is updated.  Transactions are also used to prevent collisions,
> eg. I don't want two users adding to a counter at the same time and
> one of their adds is lost.
>
> It seems neither of these is likely.  It is unlikely that a new Person
> will be created and before the system can save their mobile, some
> other user will try and edit it.  It is also unlikely that either of
> these will fail and not fail gracefully.  If you try and add a user in
> one transaction then try to add a mobile in a second transaction
> either both will succeed or fail.  Same outcome as a single
> transaction.  Or one of the two fails and you simply try it again or
> delete the one that didn't fail and inform the user.
>
> If you really need a single transaction you can put both items in the
> same entity group using a key builder.
>
> You can see an example here under Creating Entities With Entity Groups
> http://code.google.com/appengine/docs/java/datastore/transactions.html
>
>  Dec 15, 10:16 pm, Didier Durand <durand.did...@gmail.com> wrote:
> > Hi,
> >
> > If they don't belong to the same entity group, you will raise an
> > exception by trying to store 2 objects in a single transaction.
> >
> > 2 ways to handle that:
> >
> >    a) you make Mobile belong to same entity group as Person so you'll
> > be able to store both in a single transaction. I understand in your
> > question that you can't go this way.
> >    b) you store one let's say Person in first transaction and during
> > this transaction, you start a task as part of the transaction: "You
> > can enqueue a task as part of a datastore transaction, such that the
> > task is only enqueued—and guaranteed to be enqueued—if the transaction
> > is committed successfully. Tasks added within a transaction are
> > considered to be a part of it and have the same level of isolation and
> > consistency." as said inhttp://
> code.google.com/appengine/docs/java/taskqueue/overview.html#Ta...
> >
> > Hope it helps
> >
> > didier
> >
> > On Dec 15, 8:26 am, kartik kudada <kartik.kud...@gmail.com> wrote:
> >
> > > Can we store two unowned objects(one to many) in datastore in a single
> > > transaction.
> > > For example -  We have
> >
> > > public class Person {
> > > @PrimaryKey
> > >  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
> > > private Long id;
> >
> > > @Persistent
> > > private String name;
> >
> > >         @Persistent
> > >  private List<Key> mobileIds =  new ArrayList<Key>();
> >
> > >    //....
> > >   //.....
> > >   }
> >
> > > public class Mobile {
> >
> > >          @PrimaryKey
> > > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
> > >  private Key mobileId;
> >
> > >   // ...
> > >  //....
> >
> > > }
> >
> > > I want to store these two objects in datastore in single transaction so
> that
> > > relation  can be made in between both objects.
> > > Tell me if any other solution is there ?
>
> --
> 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-j...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>

-- 
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-j...@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