You need to understand the concept of Entity group here, and need to understand the owned relation and unowned relation. Think of owned and unowned relation like this You(your house) and your TV has owned relationship, your house has TV, no ne can see it from outside, and if your friend want the same tv he need to buy the same TV and own it. And at one point if you ask who all watching my TV then it will be just you not your friend as he has his own TV(although same kind of TV).
But You and your favourite movie theatre has unowned relationship, you dont own it, anyone who knows the address of theatre can go and watch movie. and at one moment 1000s of people might be watching the same movie/theatre Back to your question..... Categories(3)/CategoryGroups(4) is an example for owned relation. CategoryGroup(4) will be available to Category(3) only and if you create another category Cateory(10) with same category group it will just create another version of categoryGroup CategoryGroup(11) in that category. But you may see that CategoryGroup 11 and CategoryGroup 4 both are Entertainment. In your case many categories can have same categoryGroup.So instead of using owned relationship, you should use unowned relationship. Instead of this @Persistent private CategoryGroups Group; define this @Persistent private Key categoryGroupId; and save key of CategoryGroup rather then full object. (Dont buy a TV for every other rmovie you want to watch, just buy a movie theatre ticket go there and use that :) ) I hope u get the idea, you can learn more from here.... http://code.google.com/appengine/docs/java/datastore/relationships.html spare me if you dont like my example... :) Ravi. On Tue, Jul 6, 2010 at 5:47 PM, AC <acol...@gmail.com> wrote: > I just started fooling around w/ GAE this weekend. > > I have a Categories class and a CategoryGroup class. The idea is that > every category must be grouped. For example the CategoryGroup > "Entertainment" can be assigned to many Categories, such as "movies", > "music" and "television". > > Here are my classes. > > @PersistenceCapable > public class Categories > { > @PrimaryKey > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > private Key Id; > > @Persistent > private CategoryGroups Group; > > @Persistent > private boolean IsDeleted; > > @Persistent > private String Name; > > @Persistent > private Date CreateDate; > > @Persistent > @Column(allowsNull="true") > private Date ModifiedDate; > } > > @PersistenceCapable > public class CategoryGroups > { > @PrimaryKey > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > private Key Id; > > @Persistent > boolean IsDeleted; > > @Persistent > String Name; > > @Persistent > Date CreateDate; > > @Persistent > @Column(allowsNull="true") > Date ModifiedDate; > } > > First I add a record to CategoryGroups. When I query all, the reult > is : > > CategoryGroups(2) > > Next, I add a record to Categories. When I query all CategoryGroups, > the result is : > > Categories(3)/CategoryGroups(4) > CategoryGroups(2) > > I do not doubt that this works as it was designed to, however, coming > from a RDBMS background, this is very confusing to me. The screen I > created to manage Categories now has "Entertainment" listed twice in > the CategoryGroups select box. Is there a better approach to achieve > my goal? > > Any advice is much appreciated. > > -- > 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.