Re: Runtime relationships & client

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Sun Nov 11 2007 - 09:44:42 EST

  • Next message: Andrus Adamchik: "Re: Cleaning up ROP"

    I don't think that's been addressed yet. I guess adding such fields
    via class generation should be the best solution.

    Andrus

    On Nov 7, 2007, at 11:56 PM, Kevin Menard wrote:

    > Andrus,
    >
    > Not too long ago you removed the need for explicitly specifying
    > reverse
    > relationships in the map. It looks like these have been replaced with
    > runtime relationships that are discovered internally to Cayenne.
    >
    > How does that work with the client classes, which explicitly
    > declare every
    > field? My guess is that with CDO this isn't an issue because it's
    > just an
    > entry in a map.
    >
    > As part of the ROP work, I'm running into problems with newObject.
    > This
    > strikes me as a problem that's likely been solved before. I've
    > included a
    > bit of a stack trace below, but I don't think it will help much.
    >
    > Thanks,
    > Kevin
    >
    > --
    >
    > Caused by: org.apache.cayenne.CayenneRuntimeException: [v.$
    > {project.version}
    > ${project.build.date} ${project.build.time}] Error instantiating
    > object.
    > at org.apache.cayenne.access.DataContext.newObject
    > (DataContext.java:762)
    > at org.apache.cayenne.access.DataContext.newObject
    > (DataContext.java:740)
    > at
    > com.servprise.www.pages.account.AccountCreationPage.pageBeginRender
    > (AccountC
    > reationPage.java:44)
    > at
    > org.apache.tapestry.AbstractPage.firePageBeginRender
    > (AbstractPage.java:409)
    > at org.apache.tapestry.AbstractPage.renderPage
    > (AbstractPage.java:244)
    > at
    > org.apache.tapestry.engine.RequestCycle.renderPage
    > (RequestCycle.java:397)
    > ... 44 more
    > Caused by: org.apache.cayenne.CayenneRuntimeException: [v.$
    > {project.version}
    > ${project.build.date} ${project.build.time}] No field
    > 'runtimeRelationship0'
    > is defined in class: com.servprise.www.models.Address
    > at
    > org.apache.cayenne.reflect.FieldAccessor.prepareField
    > (FieldAccessor.java:110
    > )
    > at
    > org.apache.cayenne.reflect.FieldAccessor.<init>(FieldAccessor.java:50)
    > at
    > org.apache.cayenne.reflect.PersistentDescriptorFactory.createAccessor(
    > Persis
    > tentDescriptorFactory.java:221)
    > at
    > org.apache.cayenne.reflect.valueholder.ValueHolderDescriptorFactory.cr
    > eateTo
    > ManyListProperty(ValueHolderDescriptorFactory.java:69)
    > at
    > org.apache.cayenne.reflect.PersistentDescriptorFactory.getDescriptor
    > (Persist
    > entDescriptorFactory.java:100)
    > at
    > org.apache.cayenne.reflect.PersistentDescriptorFactory.getDescriptor
    > (Persist
    > entDescriptorFactory.java:51)
    > at
    > org.apache.cayenne.reflect.ClassDescriptorMap.createDescriptor
    > (ClassDescript
    > orMap.java:128)
    > at
    > org.apache.cayenne.reflect.LazyClassDescriptorDecorator.checkDescripto
    > rIniti
    > alized(LazyClassDescriptorDecorator.java:49)
    > at
    > org.apache.cayenne.reflect.LazyClassDescriptorDecorator.createObject
    > (LazyCla
    > ssDescriptorDecorator.java:63)
    > at org.apache.cayenne.access.DataContext.newObject
    > (DataContext.java:759)
    > ... 49 more
    > Caused by: java.lang.NoSuchFieldException: runtimeRelationship0
    > at java.lang.Class.getDeclaredField(Class.java:1854)
    > at
    > org.apache.cayenne.reflect.FieldAccessor.lookupFieldInHierarchy
    > (FieldAccesso
    > r.java:154)
    > at
    > org.apache.cayenne.reflect.FieldAccessor.lookupFieldInHierarchy
    > (FieldAccesso
    > r.java:163)
    > at
    > org.apache.cayenne.reflect.FieldAccessor.lookupFieldInHierarchy
    > (FieldAccesso
    > r.java:163)
    > at
    > org.apache.cayenne.reflect.FieldAccessor.prepareField
    > (FieldAccessor.java:101
    > )
    >
    >



    This archive was generated by hypermail 2.0.0 : Sun Nov 11 2007 - 09:45:22 EST