Hello-
I am having a strange problem with our application on WebObjects 5.4
(not sure if it was present on 5.3, just giving some background).
The error occurs when I attempt to delete an object which has a
flattened relationship. The error I get is:
java.lang.IllegalStateException: A valid global ID could not be
obtained for entity named UnknownStatusPolicyReportItem, relationship
named policies, primary key dictionary {policyID = 169; reportID =
15; }.
File Line# Method Package
EODatabaseContext.java 4867
databaseOperationForIntermediateRowFromSourceObject
com.webobjects.eoaccess
EODatabaseContext.java 4891
recordDeleteForIntermediateRowFromSourceObjectRelationshipDestinationObject
com.webobjects.eoaccess
EODatabaseContext.java 4944
nullifyAttributesInRelationshipSourceObjectDestinationObject
com.webobjects.eoaccess
EODatabaseContext.java 4970
nullifyAttributesInRelationshipSourceObjectDestinationObjects
com.webobjects.eoaccess
EODatabaseContext.java 5882 recordChangesInEditingContext
com.webobjects.eoaccess
EOObjectStoreCoordinator.java 373 saveChangesInEditingContext
com.webobjects.eocontrol
EOEditingContext.java 3176 saveChanges com.webobjects.eocontrol
ReportChooser.java 26 deleteReport
The model classes involved are Policy, UnknownStatusPolicyReport, and
UnknownStatusPolicyReportItem. UnknownStatusPolicyReport is a
subclass (using single-table inheritance) of Report. A
UnknownStatusPolicyReport has a to-many relationship to
UnknownStatusPolicyReportItem, and UnknownStatusPolicyReportItem has a
to-one relationship to Policy (each item in the report points to an
insurance policy). I defined a flattened to-many relationship on
UnknownStatusPolicyReport called policies which is defined as
"items.policy". I also set the delete rule on the
UnknownStatusPolicyReport items relationship to Cascade so the
UnknownStatusPolicyReportItems get deleted when the
UnknownStatusPolicyReport is deleted. The code that does the delete:
public WOComponent deleteReport() {
Session s = (Session) session();
s.user().removeFromReports((Report)entity);
session().defaultEditingContext().deleteObject((EOEnterpriseObject)
entity);
session().defaultEditingContext().saveChanges();
return null;
}
Any assistance would be greatly appreciated....I am sure I'm missing
something fundamental here about how EOF works.
Thanks,
Greg
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [EMAIL PROTECTED]