Good point.  They belong to the same entity group.  The more complete
Objectify class is shown.
public class Payment implements IsSerializable {
    @Id
    private Long id;
    @Parent Key<Party> parentPartyKey;
    private String comments;
    private double amount;
}

public class Invoice IsSerializable {
    @Id Long id;
    @Parent Key<Party> parentPartyKey;
    InvoiceType invoiceType;
    Status status;
    private double amount;
}

In the application,there are situations, where I update the Payment and
Invoice in a transaction.

So, how can this be done in mapreduce.

-Aswath

On Sat, Oct 30, 2010 at 12:26 PM, Didier Durand <[email protected]>wrote:

> Hi,
>
> Question from side: do Payment & Invoice belong to the same entity
> group as Party ? I ask this because of the transactional implications
> it will have when you modify keys in Payments & Invoices.
>
> regards
> didier
>
> On Oct 30, 5:04 am, aswath satrasala <[email protected]>
> wrote:
> > Hi,
> > Further, on this... which leads to how changing of the namespace can be
> done
> > using mapreduce.
> >
> > If I recreate entities, then if the keys are stored as references in
> other
> > entities also needs to be recreated.
> > Ex.
> > class Party {
> >   @Long id
> >   Key<Tenant> tenantKey;  // partitioning/filtering
> >   String fname
> >
> > }
> >
> > I have several other entitities dependent on the Party Key.
> > class Invoice {
> >  @Long id
> >  Key<party> partyKey
> >  ...}
> >
> > class Payment {
> >  @Long id
> >  Key<Party> partyKey
> >
> > }
> >
> > All invoices/Payments has to be re-created.
> >
> > So, how can this be done using mapreduce jobs.  One option is
> > - Using mapreduce, all the Party entities are recreated.  The originalkey
> > and the newkey is stored in a different mapping table, something like
> this
> > and operates in the empty namespace.
> > class MigrationMappingKeys {
> > @Long id;
> > Key<Party> oldKey
> > Key<Party> newKey
> >
> > }
> >
> > Then, I run the mapreduce job on the Invoice and Payment, and recreate
> based
> > on the above class.
> >
> > Any other options...?
> > -Aswath
> >
> > On Thu, Oct 28, 2010 at 3:25 PM, Didier Durand <[email protected]
> >wrote:
> >
> > > Hi,
> >
> > >http://code.google.com/appengine/docs/java/javadoc/com/google/appengi.
> ..
> > > says
> >
> > > "When a namespace aware class (e.g., Key, Query and MemcacheService)
> > > is constructed, it determines which namespace will be used by calling
> > > get() if it is otherwise unspecified. If get() returns null, the
> > > current namespace is unset and these APIs will use the empty ("")
> > > namespace in its place. "
> >
> > > So, I would guess that you have to recreate / copy your entities after
> > > having set namespace via NameSpaceManager.set() if you want to move
> > > them into a new namespace
> >
> > > regards
> > > didier
> >
> > > On Oct 28, 11:34 am, aswath satrasala <[email protected]>
> > > wrote:
> > > > Hello,
> > > > I have an multi-tenant app-id, and I have designed on partitioning
> the
> > > > entities based on  url parameters.  I am not using the namespace yet.
> >
> > > > For example,
> >
> > > > Tenant {
> > > > @Id name+email;
> >
> > > > }
> >
> > > > class Party {
> > > >   @Long id
> > > >   Key<Tenant> tenantKey;  // partitioning/filtering
> > > >   String fname
> >
> > > > }
> >
> > > > Now, I am planning to use the NamespaceManager for the Party
> entities.  I
> > > > want to use the mapreduce and apply the namespace on the existing
> Party
> > > > entities.
> > > > Can a namespace be changed from empty to certain value on the
> existing
> > > > entity.
> >
> > > > -Aswathhttp://vs-accounting.appspot.com
> >
> > > --
> > > 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
> > > [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<google-appengine-java%[email protected]>
> <google-appengine-java%[email protected]<google-appengine-java%[email protected]>
> >
> > > .
> > > 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
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine-java%[email protected]>
> .
> 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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to