Based on the Max Ross I/O video on Persistence, I understand the best practice regarding handling of Master/Detail relations is to place redundant Master data in the Detail row. Same would apply to any type of relation (1-to-1, 1-to-many).
So for example if I have an entity Person relating as 1-to-many with another entity Address, then instead of just a simple FK like Address.personId I am supposed to also include redundant fields like Address.lastName, Address.firstName and so on depending on how I display/process on Address data in the app. Therefore, when reading Address data I would NOT necessarily have to perform another read to the Master just to get LastName/FirstName, etc. The problem is if I have 10 such relations with Person and JDO does NOT allow me to declare an object we'll call PersonFK containing these fields (personId, lastName, firstName, etc), then we quickly have a code maintenance nightmare for our app since any significant app can have 100's of FKs to manage and all these fields will NOT be coded in an Object Oriented sense. So in my example, if I have to add another redundant field for Person FKs such as SSN or change behavior of any existing one of these redundant fields for Person, then I have at least 10 touchpoints in the app to deal with, where good OO design mandates I should only have 1 touchpoint. Is this true or have I overlooked a feature in GAE JDO implementation that is NOT mentioned in the GAE docs? The closest concept indicated in the GAE docs are the Embedded Classes which only apply to 1 Entity...so they are quite useless from an OO perspective across many objects. --~--~---------~--~----~------------~-------~--~----~ 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-java@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 -~----------~----~----~----~------~----~------~--~---