I have an object model with a Person class that references several role 
classes, e.g. Customer, Partner, Administrator.

Since GAE does not support polymorphism, I am trying to implement the 
relationship as an ArrayList of role keys in Person with a Person key in 
each of the role classes. It looks like this:

class Person {

   @Persistent
   private ArrayList<String> roleKeys = new ArrayList<String>();
}

class Administrator implements IRole {
   @Persistent
   private Key personKey;
}

To create an administrator, I create a Person instance and an Administrator 
instance. I want to set the Administrator as a child of the Person instance, 
i.e. create a datastore key that uses the Person as a parent, so that both 
instances are in the same entity group and can be operated on in the same 
transaction. I'm trying to do this, as follows:

   Administrator admin = new Administrator();
   Key adminKey = KeyFactory.createKey(person.getKey(), 
Administrator.class.getSimpleName(), ?);
   admin.setKey(adminKey);

The problem is that I cannot find a way to generate a unique key for the 
Administrator instance that has the Person instance as its parent, and have 
the system generate a unique ID as the key for the Administrator instance 
using KeyFactory.createKey(). Is there some other way to do this?

Thank you,

Rick

-- 
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