Filed http://code.google.com/p/datanucleus-appengine/issues/detail?id=170
On Tue, Dec 8, 2009 at 6:18 PM, Max Ross (Google) <maxr+appeng...@google.com<maxr%2bappeng...@google.com> > wrote: > Ok I think I know what's going on. First here's a stripped down version of > your object model with the bare minimum needed to reproduce the exception: > > @PersistenceCapable(identityType = IdentityType.APPLICATION) > public class RatePlan { > > @PrimaryKey > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > private Key id; > } > > @PersistenceCapable(identityType = IdentityType.APPLICATION) > public class Activity { > > @PrimaryKey > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > private Key id; > > @Persistent > private List<RatePlan> ratePlans = new ArrayList<RatePlan>(); > } > > @PersistenceCapable(identityType = IdentityType.APPLICATION) > public class Bundle { > > @PrimaryKey > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > private Key id; > > @Persistent > private RatePlan ratePlan; > > public void setRatePlan(RatePlan ratePlan) { > this.ratePlan = ratePlan; > } > } > > And here's the unit test I turned your code into that generates the > exception: > public void testBryce() { > pm.newQuery(Activity.class).execute(); > > Bundle bundle = new Bundle(); > bundle.setRatePlan(new RatePlan()); > > pm.makePersistent(bundle); > } > > I believe the issue is that RatePlan is owned by two different objects in > your model - Bundle and Activity. Due to the nature of primary keys in the > app engine datastore, a class can only have a single owner. We detect other > flavors of this scenario when the entity meta-data is loaded but not this > particular variant. I'll file a bug and try to produce a useful exception. > To work around this you'll need to either switch Activity.ratePlans or > Bundle.ratePlans to be an unowned relationship and just store the Key of the > RatePlan rather than the RatePlan itself. Please give that a try and let me > know how it goes. > > Thanks, > Max > > On Tue, Dec 8, 2009 at 10:19 AM, bryce cottam <bcot...@gmail.com> wrote: > >> No worries Max, I'm using 1.2.6 right now, so the "multiple instance" bug >> isn't an issue right now. Whenever you get to it is fine. As always I >> appreciate your input. >> >> Thanks >> -bryce >> >> On Dec 8, 2009 10:14 AM, "Max Ross (Google)" >> <maxr+appeng...@google.com<maxr%2bappeng...@google.com>> >> wrote: >> >> Hi Bryce, >> >> I started digging into you issue and quickly bumped into the "Multiple >> relationships of the same type" bug for which I posted the workaround. Then >> I got bogged down with unrelated stuff. I have definite plans to get back >> to your example today. Thanks for being patient, and sorry this is taking >> so long. >> >> Max >> >> On Mon, Dec 7, 2009 at 11:35 PM, bcottam <bcot...@gmail.com> wrote: > > >> Max, have you had a chance... >> >> -- >> 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.