On 2010-11-17, at 9:23 AM, David Avendasora wrote: > Any further thoughts on this before I just remove the flattening and do > things the "hard" way?
It is and omnigroup hosted list: <http://www.omnigroup.com/mailman/listinfo/webobjects-talk> > > Dave > > On Nov 16, 2010, at 2:05 PM, David Avendasora wrote: > >> Okay. Busted. I was trying to obfuscate my actual model, and I did it wrong. >> >> Okay here's the real code (you all are sworn to double-super-secrecy): >> >> SchoolCompliance <->> SchoolComplianceRegistrationPeriod <<-> >> RegistrationPeriod >> >> SchoolCompliance has a compound PK of schoolId and complianceId >> RegistrationPeriod has a simple PK of ID >> SchoolComplianceRegistrationPeriod has a simple PK of ID >> SchoolComplianceRegistrationPeriod.schoolCompliance joins on the schoolId >> and complianceId FKs >> SchoolComplianceRegistrationPeriod.registrationPeriod joins on the >> registrationPeriodId FK >> >> I have a flattened schoolCompliances relationship on RegistrationPeriod that >> is defined as schoolComplianceRegistrationPeriods.schoolCompliance >> >> When I add a SchoolCompliance object to the >> RegistrationPeriod.schoolCompliances() toMany relatioinship, and then save >> it, I get: >> >> Caused by: java.lang.IllegalStateException: A valid global ID could not be >> obtained for entity named SamsSchoolComplianceRegistrationPeriod, >> relationship named schoolCompliances, primary key dictionary {schoolId = >> 1020; complianceId = 1000; registrationPeriodId = 15825; }. >> at >> com.webobjects.eoaccess.EODatabaseContext.databaseOperationForIntermediateRowFromSourceObject(EODatabaseContext.java:4871) >> at >> com.webobjects.eoaccess.EODatabaseContext.recordInsertForIntermediateRowFromSourceObject(EODatabaseContext.java:4888) >> at >> com.webobjects.eoaccess.EODatabaseContext.relayAttributesInRelationshipSourceObjectDestinationObject(EODatabaseContext.java:4913) >> at >> com.webobjects.eoaccess.EODatabaseContext.relayAttributesInRelationshipSourceObjectDestinationObjects(EODatabaseContext.java:4966) >> at >> com.webobjects.eoaccess.EODatabaseContext.recordChangesInEditingContext(EODatabaseContext.java:6036) >> at >> com.webobjects.eocontrol.EOObjectStoreCoordinator.saveChangesInEditingContext(EOObjectStoreCoordinator.java:373) >> at >> com.webobjects.eocontrol.EOEditingContext.saveChanges(EOEditingContext.java:3192) >> at er.extensions.eof.ERXEC._saveChanges(ERXEC.java:1085) >> at er.extensions.eof.ERXEC.saveChanges(ERXEC.java:1007) >> at >> com.k12.totalview.ui.RegistrationPeriodEdit.save(RegistrationPeriodEdit.java:165) >> >> The join table does NOT have a compound PK, why is EOF creating a >> PK-Dictionary with the FKs? >> >> Dave >> >> On Nov 16, 2010, at 12:54 PM, Mike Schrag wrote: >> >>> does one of the four relationships define the joins at be a composite >>> rather than a single fk-pk join? it sort of looks that way, that the >>> OrgRequirement.requirements relationship is defined wrong. >>> >>> On Nov 16, 2010, at 12:45 PM, David Avendasora wrote: >>> >>>> Just to be clear, here's the exception I get: >>>> >>>> Caused by: java.lang.IllegalStateException: A valid global ID could not be >>>> obtained for entity named OrgRequirement, relationship named requirements, >>>> primary key dictionary {orgId = 1020; requirementId = 1000;}. >>>> at >>>> com.webobjects.eoaccess.EODatabaseContext.databaseOperationForIntermediateRowFromSourceObject(EODatabaseContext.java:4871) >>>> at >>>> com.webobjects.eoaccess.EODatabaseContext.recordInsertForIntermediateRowFromSourceObject(EODatabaseContext.java:4888) >>>> at >>>> com.webobjects.eoaccess.EODatabaseContext.relayAttributesInRelationshipSourceObjectDestinationObject(EODatabaseContext.java:4913) >>>> at >>>> com.webobjects.eoaccess.EODatabaseContext.relayAttributesInRelationshipSourceObjectDestinationObjects(EODatabaseContext.java:4966) >>>> at >>>> com.webobjects.eoaccess.EODatabaseContext.recordChangesInEditingContext(EODatabaseContext.java:6036) >>>> at >>>> com.webobjects.eocontrol.EOObjectStoreCoordinator.saveChangesInEditingContext(EOObjectStoreCoordinator.java:373) >>>> at >>>> com.webobjects.eocontrol.EOEditingContext.saveChanges(EOEditingContext.java:3192) >>>> at er.extensions.eof.ERXEC._saveChanges(ERXEC.java:1085) >>>> at er.extensions.eof.ERXEC.saveChanges(ERXEC.java:1007) >>>> >>>> >>>> On Nov 16, 2010, at 9:32 AM, David Avendasora wrote: >>>> >>>>> Hi all, >>>>> >>>>> I have a Many-to-Many relationship and the join table does _not_ have a >>>>> compound PK. It has a normal PK with a dataType of Long. The FKs that >>>>> represent the to-One relationships on the join table are simply FKs and >>>>> not part of the PK. >>>>> >>>>> I would like to flatten the toMany relationships, but when I add an >>>>> object to the relationship and EOF tries to create a row in the join >>>>> table it tries to create a compound PK for the join table, even though >>>>> the Model is very clear as to what the PK is. >>>>> >>>>> Is this the normal EOF behavior to ignore the Model's PK settings for the >>>>> join table and just assume that the PK is compound? >>>>> >>>>> I've always avoided flattened relationships because every time I try to >>>>> use them I run into problems and give up and go back to regular >>>>> relationships because it seems the work that flattened relationships save >>>>> always gets offset by the limitations they impose (either that or my >>>>> limitations of ability to use them properly). >>>>> >>>>> Dave >>>> >>>> >>>> >>>> _______________________________________________ >>>> Do not post admin requests to the list. They will be ignored. >>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>> Help/Unsubscribe/Update your Subscription: >>>> http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40pobox.com >>>> >>>> This email sent to msch...@pobox.com >>> >>> >>> >> >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40avendasora.com >> >> This email sent to webobje...@avendasora.com >> >> > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/webobjects-dev/dleber_wodev%40codeferous.com > > This email sent to dleber_wo...@codeferous.com ;david -- David LeBer Codeferous Software 'co-def-er-ous' adj. Literally 'code-bearing' site: http://codeferous.com blog: http://davidleber.net profile: http://www.linkedin.com/in/davidleber twitter: http://twitter.com/rebeld -- Toronto Area Cocoa / WebObjects developers group: http://tacow.org _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com