There should be with KeyFactory's builder, but you may not want to go there:
http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/KeyFactory.Builder.html On Sun, Feb 14, 2010 at 10:16 PM, Manny S <[email protected]> wrote: > Thanks Ikai, > I am doing it the way you described and it does work. Just wanted to know > if there is a way to set the child key explicitly as parent + "const > string". But I understood that will not work with datastore generated keys > since the parent needs to be persisted in order to get a key. Apologies for > the naive question :). > Manny > > On Fri, Feb 12, 2010 at 1:41 AM, Ikai L (Google) <[email protected]>wrote: > >> Are both the parent and child persisted at the same time? If so, you can >> add the child object as a child (not the Key) of the Parent object and call >> makePersistent on the Parent. >> >> On Thu, Feb 4, 2010 at 1:28 AM, Manny S <[email protected]> wrote: >> >>> I am missing something simple here but can anyone point me to how I can >>> set the child key before making the parent data persistent...(in a >>> unidirectional one to one relationship) >>> >>> I create the parent data and the child data >>> >>> parentdata pdata = new parentdata('x','y', 'z'); >>> pdata.setKey(null); >>> childdata child = new childdata('A'); >>> pdata.setChild(child); >>> >>> Now, I would like to set the child key as parent key + mystring >>> >>> When I try, >>> String strparentKey = KeyFactory.keyToString(pdata.getKey()); >>> String strchildKey = strparentKey + "details"; >>> Key childKey = KeyFactory.stringToKey(strchildKey); >>> >>> it gives me an error as the parent data does not have a key yet (cause is >>> null) >>> >>> In this case the key of the parent is generated only when I persist. But >>> I need to set the child key before I make it persistent. My application >>> cannot generate an unique app id and I rely on the datastore to do it. As >>> far as I can tell the KeyFactory.Builder does not have an option to generate >>> unique keys and relies on the app to provide it and so I cant use that >>> either. >>> >>> Any help would be appreciated... >>> >>> Manny >>> >>> -- >>> 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. >>> >> >> >> >> -- >> Ikai Lan >> Developer Programs Engineer, Google App Engine >> http://googleappengine.blogspot.com | http://twitter.com/app_engine >> >> -- >> 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]<google-appengine-java%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > -- Ikai Lan Developer Programs Engineer, Google App Engine http://googleappengine.blogspot.com | http://twitter.com/app_engine -- 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.
