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 <aswath.satras...@gmail.com> 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 <durand.did...@gmail.com>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 <aswath.satras...@gmail.com> > > 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 > > 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.