Strange problem with database, relationship and editingContext
Strange problem with database, relationship and editingContext
- Subject: Strange problem with database, relationship and editingContext
- From: "Daniele Corti" <email@hidden>
- Date: Fri, 17 Nov 2006 16:50:34 +0100
Hi all,
I have a strange error on a simple EOSortOrdering.sortedArrayUsingKeyOrderArray
this is the errer message:
Application: AffittiV2Admin
Error: java.lang.IllegalStateException: sqlStringForKeyValueQualifier: attempt to generate SQL for
com.webobjects.eocontrol.EOKeyValueQualifier (_eofInv_LKRegion_children.className = 'class com.gestweb.locationkit.LKRegion') failed because attribute identified by key '_eofInv_LKRegion_children.className' was not reachable from from entity 'AFProperty'
Reason: sqlStringForKeyValueQualifier: attempt to generate SQL for com.webobjects.eocontrol.EOKeyValueQualifier (_eofInv_LKRegion_children.className = 'class com.gestweb.locationkit.LKRegion') failed because attribute identified by key '_eofInv_LKRegion_children.className' was not reachable from from entity 'AFProperty'
well the code that generate this error is:
public NSArray childrenSortedByName() {
NSLog.out.appendln("CHILDREN: "+children()+"\neditingContext: "+this.editingContext()+"
Session.default: "+GiveSession.session().defaultEditingContext());
NSLog.out.appendln("Child: "+((EOEnterpriseObject)children().lastObject()).editingContext());
return EOSortOrdering.sortedArrayUsingKeyOrderArray
(children(),
new NSArray(ascendingNameOrdering));
}
the error is fired on the second NSLog
children() is a method of my LKRegion class, extending EOEnterpriseObject, generated from EOModeler, to manage the table LK_LOCATION in my db.
children is not a field, but the result of a to many relation from LK_LOCATION to LK_LOCATION, and the method return a NSArray.
I have the feeling that the problem is show in this log, but I really don't understand why the Object : CHILDREN:
com.webobjects.eocontrol._EOCheapCopyMutableArray[ddeda2] should causes an error while calling editingContext();
CHILDREN: ({values = {className = "class com.gestweb.locationkit.LKRegion"; images = "<
com.webobjects.eocontrol._EOCheapCopyMutableArray 1b0caf (<EOAccessArrayFaultHandler images _EOIntegralKeyGlobalID[LKRegion (java.lang.Integer)1000448]>)>"; modificationDate = 2006-11-17 15:40:26 Etc/GMT; name = "Regions"; creationDate = 2006-11-17 13:56:49 Etc/GMT; children = "<
com.webobjects.eocontrol._EOCheapCopyMutableArray ddeda2 (<EOAccessArrayFaultHandler children _EOIntegralKeyGlobalID[LKRegion (java.lang.Integer)1000448]>)>"; parent = "<com.gestweb.locationkit.LKCountry
e80317 _EOIntegralKeyGlobalID[LKCountry (java.lang.Integer)1000313]>"; }; this = "<com.gestweb.locationkit.LKRegion e5d007 _EOIntegralKeyGlobalID[LKRegion (java.lang.Integer)1000448]>"; })
editingContext: com.webobjects.eocontrol.EOEditingContext@6c9f0f Session.default: com.webobjects.eocontrol.EOEditingContext@6c9f0f
Child: com.webobjects.eocontrol.EOEditingContext@6c9f0f
CHILDREN: com.webobjects.eocontrol._EOCheapCopyMutableArray
[ddeda2]
editingContext: com.webobjects.eocontrol.EOEditingContext@6c9f0f Session.default: com.webobjects.eocontrol.EOEditingContext@6c9f0f
[2006-11-17 16:40:26 CET] <WorkerThread4> <com.webobjects.appserver._private.WOComponentRequestHandler
>: Exception occurred while handling request:
java.lang.IllegalStateException: sqlStringForKeyValueQualifier: attempt to generate SQL for com.webobjects.eocontrol.EOKeyValueQualifier (_eofInv_LKRegion_children.className = 'class
com.gestweb.locationkit.LKRegion') failed because attribute identified by key '_eofInv_LKRegion_children.className' was not reachable from from entity 'AFProperty'
[2006-11-17 16:40:26 CET] <WorkerThread4> java.lang.IllegalStateException
: sqlStringForKeyValueQualifier: attempt to generate SQL for com.webobjects.eocontrol.EOKeyValueQualifier (_eofInv_LKRegion_children.className = 'class com.gestweb.locationkit.LKRegion') failed because attribute identified by key '_eofInv_LKRegion_children.className' was not reachable from from entity 'AFProperty'
at com.webobjects.jdbcadaptor.FrontbasePlugIn$FrontbaseExpression.sqlStringForKeyValueQualifier(FrontbasePlugIn.java:1016)
at com.webobjects.eoaccess.EOQualifierSQLGeneration$_KeyValueQualifierSupport.sqlStringForSQLExpression
(EOQualifierSQLGeneration.java:441)
at com.webobjects.eoaccess.EOQualifierSQLGeneration$Support._sqlStringForSQLExpression(EOQualifierSQLGeneration.java:151)
at com.webobjects.eoaccess.EOSQLExpression.sqlStringForArrayOfQualifiers
(EOSQLExpression.java:1562)
at com.webobjects.eoaccess.EOSQLExpression.sqlStringForConjoinedQualifiers(EOSQLExpression.java:1597)
at com.webobjects.eoaccess.EOQualifierSQLGeneration$_AndQualifierSupport.sqlStringForSQLExpression
(EOQualifierSQLGeneration.java:512)
at com.webobjects.eoaccess.EOQualifierSQLGeneration$Support._sqlStringForSQLExpression(EOQualifierSQLGeneration.java:151)
at com.webobjects.eoaccess.EOSQLExpression.prepareSelectExpressionWithAttributes
(EOSQLExpression.java:1024)
at com.webobjects.jdbcadaptor.JDBCExpression.prepareSelectExpressionWithAttributes(JDBCExpression.java:273)
at com.webobjects.eoaccess.EOSQLExpressionFactory.selectStatementForAttributes
(EOSQLExpressionFactory.java:226)
at com.webobjects.jdbcadaptor.JDBCChannel.selectAttributes(JDBCChannel.java:178)
at com.webobjects.eoaccess.EODatabaseChannel._selectWithFetchSpecificationEditingContext(EODatabaseChannel.java
:878)
at com.webobjects.eoaccess.EODatabaseChannel._selectWithFetchSpecificationEditingContext(EODatabaseChannel.java:805)
at com.webobjects.eoaccess.EODatabaseChannel.selectObjectsWithFetchSpecification(EODatabaseChannel.java
:215)
at com.webobjects.eoaccess.EODatabaseContext._objectsWithFetchSpecificationEditingContext(EODatabaseContext.java:3205)
at com.webobjects.eoaccess.EODatabaseContext.objectsWithFetchSpecification(EODatabaseContext.java
:3346)
at com.webobjects.eoaccess.EODatabaseContext._followToManyRelationshipWithFetchSpecification(EODatabaseContext.java:2653)
at com.webobjects.eoaccess.EODatabaseContext._followFetchSpecification(EODatabaseContext.java
:2807)
at com.webobjects.eoaccess.EODatabaseContext._batchFetchRelationshipForSourceObjectsEditingContext(EODatabaseContext.java:3904)
at com.webobjects.eoaccess.EODatabaseContext.objectsForSourceGlobalID(EODatabaseContext.java
:4187)
at com.webobjects.eocontrol.EOObjectStoreCoordinator.objectsForSourceGlobalID(EOObjectStoreCoordinator.java:682)
at com.webobjects.eocontrol.EOEditingContext.objectsForSourceGlobalID(EOEditingContext.java:3965)
at com.webobjects.eoaccess.EODatabaseContext._fireArrayFault(EODatabaseContext.java:4427)
at com.webobjects.eoaccess.EOAccessArrayFaultHandler.completeInitializationOfObject(EOAccessArrayFaultHandler.java:70)
at com.webobjects.eocontrol._EOCheapCopyMutableArray.willRead(_EOCheapCopyMutableArray.java:38)
at com.webobjects.eocontrol._EOCheapCopyMutableArray.count(_EOCheapCopyMutableArray.java:92)
at com.webobjects.foundation.NSArray.lastObject
(NSArray.java:833)
at com.gestweb.locationkit.LKRegion.childrenSortedByName(LKRegion.java:184)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java
:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1.methodValue
(NSKeyValueCoding.java:684)
at com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKeyValueCoding.java:1160)
at com.webobjects.eocontrol.EOCustomObject.valueForKey(EOCustomObject.java:1559)
at com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCoding.java:498)
at com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java
:212)
at com.webobjects.eocontrol.EOCustomObject.valueForKeyPath(EOCustomObject.java:1675)
at com.webobjects.foundation.NSKeyValueCodingAdditions$Utility.valueForKeyPath(NSKeyValueCodingAdditions.java:149)
at
com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:217)
at com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1600)
at com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent
(WOKeyValueAssociation.java:46)
at com.webobjects.appserver.WOComponent.valueForBinding(WOComponent.java:735)
at com.webobjects.appserver._private.WOBindingNameAssociation.valueInComponent(WOBindingNameAssociation.java
:35)
at com.webobjects.appserver.WOComponent.valueForBinding(WOComponent.java:735)
at com.webobjects.appserver._private.WOBindingNameAssociation.valueInComponent(WOBindingNameAssociation.java:35)
at com.webobjects.appserver.WOComponent.valueForBinding
(WOComponent.java:735)
at com.webobjects.appserver._private.WOBindingNameAssociation.valueInComponent(WOBindingNameAssociation.java:35)
at com.webobjects.appserver.WOComponent.valueForBinding(WOComponent.java:735)
at com.webobjects.appserver._private.WOBindingNameAssociation.valueInComponent(WOBindingNameAssociation.java:35)
at com.webobjects.appserver.WOAssociation.booleanValueInComponent(WOAssociation.java:278)
at com.webobjects.appserver._private.WOConditional.takeValuesFromRequest
(WOConditional.java:33)
at com.webobjects.appserver._private.WODynamicGroup.takeChildrenValuesFromRequest(WODynamicGroup.java:81)
at com.webobjects.appserver._private.WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java
:89)
at com.webobjects.appserver.WOComponent.takeValuesFromRequest(WOComponent.java:914)
at com.webobjects.appserver._private.WOComponentReference.takeValuesFromRequest(WOComponentReference.java:97)
at com.webobjects.appserver._private.WODynamicGroup.takeChildrenValuesFromRequest
(WODynamicGroup.java:81)
at com.webobjects.appserver._private.WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java:89)
at com.webobjects.appserver._private.WORepetition.takeValuesFromRequest(WORepetition.java:124)
at com.webobjects.appserver._private.WODynamicGroup.takeChildrenValuesFromRequest(WODynamicGroup.java:81)
at com.webobjects.appserver._private.WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java:89)
at com.webobjects.appserver.WOComponent.takeValuesFromRequest
(WOComponent.java:914)
at com.webobjects.appserver._private.WOComponentReference.takeValuesFromRequest(WOComponentReference.java:97)
at com.webobjects.appserver._private.WODynamicGroup.takeChildrenValuesFromRequest
(WODynamicGroup.java:81)
at com.webobjects.appserver._private.WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java:89)
at com.webobjects.appserver._private.WOConditional.takeValuesFromRequest(WOConditional.java
:41)
at com.webobjects.appserver._private.WODynamicGroup.takeChildrenValuesFromRequest(WODynamicGroup.java:81)
at com.webobjects.appserver._private.WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java:89)
at
com.webobjects.appserver._private.WOConditional.takeValuesFromRequest(WOConditional.java:41)
at com.webobjects.appserver._private.WODynamicGroup.takeChildrenValuesFromRequest(WODynamicGroup.java:81)
at com.webobjects.appserver._private.WODynamicGroup.takeValuesFromRequest
(WODynamicGroup.java:89)
at com.webobjects.appserver.WOComponent.takeValuesFromRequest(WOComponent.java:914)
at com.webobjects.appserver._private.WOComponentReference.takeValuesFromRequest(WOComponentReference.java
:97)
at com.webobjects.appserver._private.WODynamicGroup.takeChildrenValuesFromRequest(WODynamicGroup.java:81)
at com.webobjects.appserver._private.WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java:89)
at
com.webobjects.appserver._private.WORepetition.takeValuesFromRequest(WORepetition.java:124)
at com.webobjects.appserver._private.WODynamicGroup.takeChildrenValuesFromRequest(WODynamicGroup.java:81)
at com.webobjects.appserver._private.WODynamicGroup.takeValuesFromRequest
(WODynamicGroup.java:89)
at com.webobjects.appserver.WOComponent.takeValuesFromRequest(WOComponent.java:914)
at com.webobjects.appserver._private.WOComponentReference.takeValuesFromRequest(WOComponentReference.java
:97)
at com.webobjects.appserver._private.WODynamicGroup.takeChildrenValuesFromRequest(WODynamicGroup.java:81)
at com.webobjects.appserver._private.WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java:89)
at
com.webobjects.appserver.WOComponent.takeValuesFromRequest(WOComponent.java:914)
at com.webobjects.appserver._private.WOComponentReference.takeValuesFromRequest(WOComponentReference.java:97)
at com.webobjects.appserver._private.WODynamicGroup.takeChildrenValuesFromRequest
(WODynamicGroup.java:81)
at com.webobjects.appserver._private.WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java:89)
at com.webobjects.appserver._private.WOComponentContent.takeValuesFromRequest(WOComponentContent.java
:20)
at com.webobjects.appserver._private.WOComponentContent.takeValuesFromRequest(WOComponentContent.java:20)
at com.webobjects.appserver._private.WODynamicGroup.takeChildrenValuesFromRequest(WODynamicGroup.java:81)
at com.webobjects.appserver._private.WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java:89)
at com.webobjects.appserver.WOComponent.takeValuesFromRequest(WOComponent.java:914)
at com.webobjects.appserver._private.WOComponentReference.takeValuesFromRequest
(WOComponentReference.java:97)
at com.webobjects.appserver._private.WOSwitchComponent.takeValuesFromRequest(WOSwitchComponent.java:144)
at com.webobjects.appserver.WOComponent.takeValuesFromRequest(WOComponent.java
:914)
at com.webobjects.appserver._private.WOComponentReference.takeValuesFromRequest(WOComponentReference.java:97)
at com.webobjects.appserver._private.WODynamicGroup.takeChildrenValuesFromRequest(WODynamicGroup.java
:81)
at com.webobjects.appserver._private.WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java:89)
at com.webobjects.appserver.WOComponent.takeValuesFromRequest(WOComponent.java:914)
at com.webobjects.appserver.WOSession.takeValuesFromRequest
(WOSession.java:1139)
at affittiV2Admin.Session.takeValuesFromRequest(Session.java:331)
at com.webobjects.appserver.WOApplication.takeValuesFromRequest(WOApplication.java:1350)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage
(WOComponentRequestHandler.java:189)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:287)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication
(WOComponentRequestHandler.java:322)
at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:358)
at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest
(WOComponentRequestHandler.java:432)
at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1306)
at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:173)
at com.webobjects.appserver._private.WOWorkerThread.run
(WOWorkerThread.java:254)
at java.lang.Thread.run(Thread.java:613)
Any advice?
Thank you for your time
--
Daniele Corti
AIM: S0CR4TE5
Messenger:
email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden