OK, but why would this behavior be happening inconsistently across his (and probably others) application?
On Sep 5, 7:06 pm, Max Ross <maxr+appeng...@google.com> wrote: > Key is not in the default fetch group because it is an appengine-specific > class. The JDO spec doesn't know anything about app engine so there's no > way that Key could be included in the list of types that are automatically > included in the default fetch group. > > Max > > > > On Fri, Sep 4, 2009 at 1:32 PM, Yegor <yegor.jba...@gmail.com> wrote: > > > Just so you know, I think I have solved the problem by setting > > defaultFetchGroup="true" on the Key property: > > > @Persistent(defaultFetchGroup="true") > > private Key text; > > > Might have something to do with the recently closed issue #58 "Queries > > don't respect fetch groups": > >http://code.google.com/p/datanucleus-appengine/issues/detail?id=58 > > > What's puzzling is that I have unowned relationships all over the > > application, however only one class - CMSPage - fails to retrieve the > > Key properties. > > > I am not sure why Key is not automatically in the default fetch group. > > Key is not an entity class. It should be ok to fetch it non-lazily by > > default. > > > Yegor > > > On Sep 4, 1:21 pm, Yegor <yegor.jba...@gmail.com> wrote: > > > Hi, > > > > I am experiencing a problem after upgrading to Java SDK 1.2.5. In a > > > simple CMS application a page is stored as a CMSPage entity, which > > > points to its text saved as a DetachedText entity using a Key property > > > (i.e. an unowned relationship) as follows: > > > > @PersistenceCapable(identityType = IdentityType.APPLICATION) > > > public class CMSPage { > > > > @PrimaryKey > > > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > > > private Key id; > > > > @Persistent > > > private Key text; > > > > public Key getId() { > > > return id; > > > } > > > > public void setId(Key id) { > > > this.id = id; > > > } > > > > public Key getText() { > > > return text; > > > } > > > > public void setText(Key text) { > > > this.text = text; > > > } > > > > } > > > > The Key property "text" points to: > > > > @PersistenceCapable(identityType = IdentityType.APPLICATION) > > > public class DetachedText { > > > > @PrimaryKey > > > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > > > private Key id; > > > > @Persistent > > > private Text content; > > > > public DetachedText(Text content) { > > > this.content = content; > > > } > > > > public Key getId() { > > > return id; > > > } > > > > public Text getContent() { > > > return content; > > > } > > > > } > > > > NOTE: I have removed other properties and code that I found unrelated > > > to the problem > > > > After saving the page I can see the "text" field populated in the > > > development console. The value shows as "DetachedText(5)". I also > > > verified that the DetachedText entity exists and its ID equals 5. > > > > However, after I retrieve CMSPage from the datastore using a > > > javax.jdo.Query the "text" field in the retrieved object is null (both > > > the Eclipse debugger and the application throwing NPE confirm it). > > > > What am I doing wrong? > > > > Any pointers will be appreciated. > > > > Thanks, > > > > Yegor --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---