Ah, if you want to do this with a relational model rather than a networked model, you would define your objects such that each is a root entity (and thereby ids can be type Long ). This is analogous to holding a foreign key rather than embedding the owned entity.
@Entity public class Event { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) Long _id; // store the id of the User rather than the User object itself. Long _host_id; ... } The hardest thing with proofing a model decision like this is scoping the transactions based on your use cases. Coordinating multiple separate transactions on separate entities makes for interesting roll-forward / rollback coding. re: design portability I believe DataNucleus supports MySQL. If you are going to use a ORM, you just have to make sure it is portable.... -- 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.