2007/6/8, David Avendasora <[EMAIL PROTECTED]>:

Hi all,

I have the following relationship: Tool <-->> ToolConfiguration.

- Optionality for the "tool" relationship in ToolConfiguration is
"Mandatory"
- Optionality for the "toolConfigurations" relationship of Tool is
"Optional"
- "Owns Destination" is checked for the "toolConfigurations"
relationship of Tool

When I remove a toolConfiguration from the toMany relationship and
save, I get an error stating "Save Failed: Relationship tool must
have a Tool!"

By having the "Owns Destination" checked on the "toolConfigurations"
relationship, shouldn't removing a toolConfiguration from the
relationship automatically Delete the ToolConfiguration object? Am I
missing something fundamental?


It's exaclty the opposite... you should check the onws destination in Tool,
(see at this in the end of the page:
http://developer.apple.com/documentation/WebObjects/UsingEOModeler/5WorkingWithRelationships/chapter_5_section_2.html#//apple_ref/doc/uid/TP30001018-CH205-TPXREF135)

Thanks,

Dave

P.S. Here's the .plist files for each entity:

{
     attributes = (
         {columnName = "Is_Active"; name = isActive; prototypeName =
boolean; },
         {columnName = "Tool_ID"; name = toolId; prototypeName =
keyId; },
         {columnName = "Tool_Name"; name = toolName; prototypeName =
entityName; },
         {columnName = "Tool_Type_ID"; name = toolTypeId;
prototypeName = keyId; }
     );
     attributesUsedForLocking = (isActive, toolTypeId, toolId,
toolName);
     className = "com.bestmaid.bakeryManagement.routing.Tool";
     classProperties = (
         toolConfigurations,
         primaryTools,
         toolType,
         isActive,
         secondaryTools,
         usedInToolConfigurations,
         toolName
     );
     externalName = "dbo.Tool";
     fetchSpecificationDictionary = {};
     internalInfo = {
         "_clientClassPropertyNames" = (
             toolConfigurations,
             primaryTools,
             toolType,
             isActive,
             secondaryTools,
             usedInToolConfigurations,
             toolName
         );
         "_javaClientClassName" = EOGenericRecord;
         "_nameInObjectStore" = "dbo.Work_Center";
         uniqueID = 198115770;
     };
     name = Tool;
     primaryKeyAttributes = (toolId);
     relationships = (
         {
             deleteRule = EODeleteRuleDeny;
             destination = ToolRelationship;
             internalInfo = {"_nameInObjectStore" = primaryTools;
uniqueID = 186092893; };
             isToMany = Y;
             joinSemantic = EOInnerJoin;
             joins = ({destinationAttribute = secondaryToolId;
sourceAttribute = toolId; });
             name = primaryTools;
             ownsDestination = Y;
         },
         {
             deleteRule = EODeleteRuleCascade;
             destination = ToolRelationship;
             internalInfo = {"_nameInObjectStore" = secondaryTools;
uniqueID = 186092845; };
             isToMany = Y;
             joinSemantic = EOInnerJoin;
             joins = ({destinationAttribute = primaryToolId;
sourceAttribute = toolId; });
             name = secondaryTools;
             ownsDestination = Y;
         },
         {
             deleteRule = EODeleteRuleCascade;
             destination = ToolConfiguration;
             isToMany = Y;
             joinSemantic = EOInnerJoin;
             joins = ({destinationAttribute = toolId; sourceAttribute
= toolId; });
             name = toolConfigurations;
             ownsDestination = Y;
         },
         {
             destination = ToolType;
             isMandatory = Y;
             isToMany = N;
             joinSemantic = EOInnerJoin;
             joins = ({destinationAttribute = toolTypeId;
sourceAttribute = toolTypeId; });
             name = toolType;
         },
         {
             deleteRule = EODeleteRuleCascade;
             destination = ToolConfigurationTool;
             internalInfo = {"_nameInObjectStore" =
toolConfigurations; };
             isToMany = Y;
             joinSemantic = EOInnerJoin;
             joins = ({destinationAttribute = toolId; sourceAttribute
= toolId; });
             name = usedInToolConfigurations;
             ownsDestination = Y;
         }
     );
     restrictingQualifier = "(toolTypeId = 2)";
     userInfo = {fetchSpecificationDictionary = {}; };
}


{
     attributes = (
         {
             columnName = "Breakdown_Time";
             name = breakdownTime;
             prototypeName = quantity;
         },
         {
             columnName = "Concurrency_Factor";
             name = concurrencyFactor;
             prototypeName = quantity;
         },
         {
             columnName = "Configuration_Description";
             name = configurationDescription;
             prototypeName = entityDescription;
         },
         {
             columnName = "Configuration_Instructions";
             name = configurationInstructions;
             prototypeName = longText;
         },
         {columnName = "Interval_Time"; name = intervalTime;
prototypeName = quantity; },
         {columnName = "Process_Time"; name = processTime;
prototypeName = quantity; },
         {
             columnName = "Production_Sequence";
             name = productionSequence;
             prototypeName = quantity;
         },
         {columnName = "Setup_Time"; name = setupTime; prototypeName
= quantity; },
         {
             columnName = "Tool_Configuration_ID";
             name = toolConfigurationId;
             prototypeName = keyId;
         },
         {columnName = "Tool_ID"; name = toolId; prototypeName =
keyId; }
     );
     attributesUsedForLocking = (
         productionSequence,
         toolConfigurationId,
         toolId,
         configurationDescription,
         breakdownTime,
         concurrencyFactor,
         intervalTime,
         processTime,
         setupTime
     );
     className =
"com.bestmaid.bakeryManagement.routing.ToolConfiguration";
     classProperties = (
         configurationInstructions,
         routingSteps,
         tool,
         routings,
         productionSequence,
         configurationDescription,
         toolsUsed,
         breakdownTime,
         concurrencyFactor,
         intervalTime,
         processTime,
         setupTime
     );
     externalName = "dbo.Tool_Configuration";
     fetchSpecificationDictionary = {};
     internalInfo = {
         "_clientClassPropertyNames" = (
             configurationInstructions,
             routingSteps,
             tool,
             routings,
             productionSequence,
             configurationDescription,
             tools,
             setupTime,
             processTime,
             intervalTime,
             concurrencyFactor,
             breakdownTime,
             usesTools,
             toolsUsed
         );
         "_javaClientClassName" = EOGenericRecord;
         "_nameInObjectStore" = "Tool_Configuration";
         uniqueID = 198115577;
     };
     name = ToolConfiguration;
     primaryKeyAttributes = (toolConfigurationId);
     relationships = (
         {
             deleteRule = EODeleteRuleDeny;
             destination = RoutingStepToolConfiguration;
             internalInfo = {"_nameInObjectStore" = routingSteps;
uniqueID = 198114823; };
             isToMany = Y;
             joinSemantic = EOInnerJoin;
             joins = (
                 {
                     destinationAttribute = toolConfigurationId;
                     sourceAttribute = toolConfigurationId;
                 }
             );
             name = routingSteps;
             ownsDestination = Y;
         },
         {
             deleteRule = EODeleteRuleDeny;
             destination = RoutingToolConfiguration;
             isToMany = Y;
             joinSemantic = EOInnerJoin;
             joins = (
                 {
                     destinationAttribute = toolConfigurationId;
                     sourceAttribute = toolConfigurationId;
                 }
             );
             name = routings;
             ownsDestination = Y;
         },
         {
             destination = Tool;
             internalInfo = {uniqueID = 198114814; };
             isMandatory = Y;
             isToMany = N;
             joinSemantic = EOInnerJoin;
             joins = ({destinationAttribute = toolId; sourceAttribute
= toolId; });
             name = tool;
         },
         {
             deleteRule = EODeleteRuleCascade;
             destination = ToolConfigurationTool;
             internalInfo = {"_nameInObjectStore" = tools; };
             isToMany = Y;
             joinSemantic = EOInnerJoin;
             joins = (
                 {
                     destinationAttribute = toolConfigurationId;
                     sourceAttribute = toolConfigurationId;
                 }
             );
             name = toolsUsed;
             ownsDestination = Y;
         }
     );
     userInfo = {fetchSpecificationDictionary = {}; };
}


_______________________________________________
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/ildenae%40gmail.com

This email sent to [EMAIL PROTECTED]




--
Daniele Corti
AIM: S0CR4TE5
Messenger: [EMAIL PROTECTED]
 _______________________________________________
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]

Reply via email to