Classes
Protocols
Constants
Functions
Macros
Types
Variables

### Classes

EOAccessArrayFaultHandler
EOAccessFaultHandler
EOAccessGenericFaultHandler
EOAdaptor
EOAdaptorChannel
EOAdaptorContext
EOAdaptorOperation
EOAttribute
EODatabase
EODatabaseChannel
EODatabaseContext
EODatabaseDataSource
EODatabaseOperation
EOEntity
EOEntityClassDescription
EOJoin
EOLoginPanel
EOModel
EOModelGroup
EORelationship
EOSQLExpression
EOSQLExpressionFactory
EOSQLQualifier
EOStoredProcedure

### Protocols

<EOColumnTypes>
<EOPropertyListEncoding>
<EOQualifierSQLGeneration>
(EOAdaptorChannelDelegation)
(EOAdaptorContextDelegation)
(EOAdaptorDelegate)
(EODatabaseContextDelegation)
(EOModelGroupClassDelegation)
(EOModelGroupDelegation)
(EOSchemaSynchronizationDelegates)

### Constants

### Functions

EODatabaseContext_globalIDForObjectWithImpPtr
EODatabaseContext_snapshotForGlobalIDWithImpPtr
GDL2_EOAccessPrivateInit

### Macros

### Types

EOAdaptorOperator
EODatabaseOperator
EODelegateResponse
EOJoinSemantic
EOUpdateStrategy

### Variables

EOAccessFaultObjectNotAvailableException
EOAdaptorContextBeginTransactionNotification
EOAdaptorContextCommitTransactionNotification
EOAdaptorContextRollbackTransactionNotification
EOAdaptorFailureKey
EOAdaptorKey
EOAdaptorOperationsKey
EOAdaptorOptimisticLockingFailure
EOAdministrativeConnectionDictionaryKey
EOAdministrativeConnectionDictionaryNeededNotification
EOAllowsNullKey
EOBindVariableAttributeKey
EOBindVariableColumnKey
EOBindVariableNameKey
EOBindVariablePlaceHolderKey
EOBindVariableValueKey
EOColumnNameKey
EOConnectionDictionaryKey
EOCreateDatabaseKey
EOCreatePrimaryKeySupportKey
EOCreateTablesKey
EOCustomQueryExpressionHintKey
EODatabaseChannelNeededNotification
EODatabaseContextKey
EODatabaseOperationsKey
EODeleteProcedureOperation
EODistantPastTimeInterval
EODropDatabaseKey
EODropPrimaryKeySupportKey
EODropTablesKey
EOEntityLoadedNotification
EOExternalNameKey
EOExternalTypeKey
EOFailedAdaptorOperationKey
EOFailedDatabaseOperationKey
EOFetchAllProcedureOperation
EOFetchWithPrimaryKeyProcedureOperation
EOForeignKeyConstraintsKey
EOGeneralAdaptorException
EOGeneralDatabaseException
EOInsertProcedureOperation
EOModelAddedNotification
EOModelInvalidatedNotification
EOModelKey
EOMoreThanOneException
EONameKey
EONextPrimaryKeyProcedureOperation
EOPrecisionKey
EOPrimaryKeyConstraintsKey
EORelationshipsKey
EOScaleKey
EOSchemaSynchronizationForeignKeyConstraintsKey
EOSchemaSynchronizationPrimaryKeyConstraintsKey
EOSchemaSynchronizationPrimaryKeySupportKey
EOStoredProcedureNameHintKey
EOWidthKey
GDL2_EOAttributeClass
GDL2_EODatabaseContextClass
GDL2_EODatabaseContext__globalIDForObjectIMP
GDL2_EODatabaseContext_snapshotForGlobalIDIMP
GDL2_EOEntityClass
GDL2_EORelationshipClass
eqSel
struct _EOTransactionScope

Up

# EORelationship

### Authors

Mirko Viviani (`mirko.viviani@gmail.com`)
Manuel Guesdon (`mguesdon@orange-concept.com`)

Date: Generated at 2026-02-03 22:13:20 +0000

Copyright: (C) 2000-2002,2003,2004,2005 Free Software Foundation, Inc.

### Contents -

1. Software documentation for the EORelationship class
2. Software documentation for the EORelationship(EORelationshipEditing) category
3. Software documentation for the EORelationship(EORelationshipPrivate2) category
4. Software documentation for the EORelationship(EORelationshipValueMapping) category
5. Software documentation for the EORelationship(EORelationshipXX) category
6. EORelationship types

# Software documentation for the EORelationship class

## EORelationship : NSObject

> Declared in:
>   EOAccess/EORelationship.h

> Conforms to:
>   EOPropertyListEncoding

Description forthcoming.

Instance Variables

### Method summary

- -addJoin:
- -beautifyName
- -removeJoin:
- -setDefinition:
- -setDeleteRule:
- -setDocComment:
- -setEntity:
- -setInternalInfo:
- -setIsBidirectional:
- -setIsMandatory:
- -setJoinSemantic:
- -setName:
- -setNumberOfToManyFaultsToBatchFetch:
- -setOwnsDestination:
- -setPropagatesPrimaryKey:
- -setToMany:
- -setUserInfo:
- -validateName:
- -_definitionArray
- -_deleteRuleFromString:
- -_flushCache
- -_foreignKeyForSourceRow:
- -_joinsChanged
- -_leftSideKeyMap
- -_rightSideKeyMap
- -_sourceAttributeNames
- -_sourceRowToForeignKeyMapping
- -_stringFromDeleteRule:
- -_substitutionRelationshipForRow:
- -auxiliaryQualifier
- -isPropagatesPrimaryKeyPossible
- -joinForAttribute:
- -qualifierOmittingAuxiliaryQualifierWithSourceRow:
- -setAuxiliaryQualifier:
- -validateValue:
- -_intermediateAttributes
- -_setSourceToDestinationKeyMap:
- -_sourceToDestinationKeyMap
- -firstRelationship
- -foreignKeyInDestination
- -intermediateEntity
- -isMultiHop
- -isToManyToOne
- -lastRelationship
- -primaryKeyForTargetRowFromSourceDBSnapshot:
- -qualifierForDBSnapshot:
- -relationshipPath
- +relationshipWithPropertyList:owner:
- -anyInverseRelationship
- -componentRelationships
- -definition
- -deleteRule
- -destinationAttributes
- -destinationEntity
- -docComment
- -entity
- -hiddenInverseRelationship
- -inverseRelationship
- -isBidirectional
- -isCompound
- -isFlattened
- -isMandatory
- -isParentRelationship
- -isToMany
- -joinSemantic
- -joinSemanticString
- -joins
- -name
- -numberOfToManyFaultsToBatchFetch
- -ownsDestination
- -propagatesPrimaryKey
- -qualifierWithSourceRow:
- -referencesProperty:
- -sourceAttributes
- -userInfo

### relationshipWithPropertyList: owner:

+ (id) relationshipWithPropertyList: (NSDictionary*)propertyList owner: (id)owner;
Description forthcoming.

### anyInverseRelationship

- (EORelationship*) anyInverseRelationship;
Description forthcoming.

### componentRelationships

- (NSArray*) componentRelationships;
Returns the array of relationships composing this flattend relationship. Returns `nil` of the reciever isn't flattend.

### definition

- (NSString*) definition;
Description forthcoming.

### deleteRule

- (EODeleteRule) deleteRule;
Description forthcoming.

### destinationAttributes

- (NSArray*) destinationAttributes;
Description forthcoming.

### destinationEntity

- (EOEntity*) destinationEntity;
Returns the relationship's destination entity (direct destination entity or destination entity of the last relationship in definition.

### docComment

- (NSString*) docComment;
Accessing documentation comments

### entity

- (EOEntity*) entity;
Returns the relationship's source entity.

### hiddenInverseRelationship

- (EORelationship*) hiddenInverseRelationship;
Description forthcoming.

### inverseRelationship

- (EORelationship*) inverseRelationship;
"Search only already created inverse relationship in destination entity relationships. Nil if none"

### isBidirectional

- (BOOL) isBidirectional;
Description forthcoming.

### isCompound

- (BOOL) isCompound;
Returns `YES` if the relationship have more than 1 join (i.e. join on more that one (sourceAttribute/destinationAttribute), `NO` otherwise (1 or less join)

### isFlattened

- (BOOL) isFlattened;
Returns `YES` when the relationship traverses at least two entities (exemple: aRelationship.anotherRelationship), `NO` otherwise.

### isMandatory

- (BOOL) isMandatory;
Description forthcoming.

### isParentRelationship

- (BOOL) isParentRelationship;
Description forthcoming.

### isToMany

- (BOOL) isToMany;
return `YES` if the relation if a to-many one, `NO` otherwise (please read books to know what to-many mean :-)

### joinSemantic

- (EOJoinSemantic) joinSemantic;
Description forthcoming.

### joinSemanticString

- (NSString*) joinSemanticString;
Description forthcoming.

### joins

- (NSArray*) joins;
Description forthcoming.

### name

- (NSString*) name;
Description forthcoming.

### numberOfToManyFaultsToBatchFetch

- (unsigned int) numberOfToManyFaultsToBatchFetch;
Description forthcoming.

### ownsDestination

- (BOOL) ownsDestination;
Description forthcoming.

### propagatesPrimaryKey

- (BOOL) propagatesPrimaryKey;
Description forthcoming.

### qualifierWithSourceRow:

- (EOQualifier*) qualifierWithSourceRow: (NSDictionary*)sourceRow;
Description forthcoming.

### referencesProperty:

- (BOOL) referencesProperty: (id)property;
Description forthcoming.

### sourceAttributes

- (NSArray*) sourceAttributes;
Description forthcoming.

### userInfo

- (NSDictionary*) userInfo;
Description forthcoming.

## Instance Variables for EORelationship Class

### _batchCount

@protected unsigned int _batchCount;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _definitionArray

@protected EOExpressionArray* _definitionArray;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _destination

@protected EOEntity* _destination;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _destinationAttributes

@protected NSArray* _destinationAttributes;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _destinationNames

@protected NSMutableDictionary* _destinationNames;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _docComment

@protected NSString* _docComment;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _entity

@protected EOEntity* _entity;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _hiddenInverseRelationship

@protected EORelationship* _hiddenInverseRelationship;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _internalInfo

@protected NSDictionary* _internalInfo;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _inverseRelationship

@protected EORelationship* _inverseRelationship;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _joinSemantic

@protected EOJoinSemantic _joinSemantic;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _joins

@protected NSMutableArray* _joins;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _name

@protected NSString* _name;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _qualifier

@protected EOQualifier* _qualifier;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _sourceAttributes

@protected NSArray* _sourceAttributes;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _sourceNames

@protected NSMutableDictionary* _sourceNames;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _sourceRowToForeignKeyMapping

@protected id _sourceRowToForeignKeyMapping;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _sourceToDestinationKeyMap

@protected NSDictionary* _sourceToDestinationKeyMap;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _userInfo

@protected NSDictionary* _userInfo;
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

# Software documentation for the EORelationship(EORelationshipEditing) category

## EORelationship(EORelationshipEditing)

> Declared in:
>   EOAccess/EORelationship.h

Description forthcoming.

### Method summary

- -addJoin:
- -beautifyName
- -removeJoin:
- -setDefinition:
- -setDeleteRule:
- -setDocComment:
- -setEntity:
- -setInternalInfo:
- -setIsBidirectional:
- -setIsMandatory:
- -setJoinSemantic:
- -setName:
- -setNumberOfToManyFaultsToBatchFetch:
- -setOwnsDestination:
- -setPropagatesPrimaryKey:
- -setToMany:
- -setUserInfo:
- -validateName:

### addJoin:

- (void) addJoin: (EOJoin*)join;
Description forthcoming.

### beautifyName

- (void) beautifyName;
Description forthcoming.

### removeJoin:

- (void) removeJoin: (EOJoin*)join;
Description forthcoming.

### setDefinition:

- (void) setDefinition: (NSString*)definition;
Description forthcoming.

### setDeleteRule:

- (void) setDeleteRule: (EODeleteRule)deleteRule;
Description forthcoming.

### setDocComment:

- (void) setDocComment: (NSString*)docComment;
Description forthcoming.

### setEntity:

- (void) setEntity: (EOEntity*)entity;

Sets the entity of the reciever.

If the receiver already has an entity assigned to it the old relationship will will be removed first.

This method is used by [EOEntity -addRelationship:] and [EOEntity -removeRelationship:] which should be used for general relationship manipulations. This method should only be useful when creating flattend relationships programmatically.

### setInternalInfo:

- (void) setInternalInfo: (NSDictionary*)dictionary;
Description forthcoming.

### setIsBidirectional:

- (void) setIsBidirectional: (BOOL)flag;
Description forthcoming.

### setIsMandatory:

- (void) setIsMandatory: (BOOL)isMandatory;
Description forthcoming.

### setJoinSemantic:

- (void) setJoinSemantic: (EOJoinSemantic)joinSemantic;
Description forthcoming.

### setName:

- (void) setName: (NSString*)name;
Description forthcoming.

### setNumberOfToManyFaultsToBatchFetch:

- (void) setNumberOfToManyFaultsToBatchFetch: (unsigned int)size;
Description forthcoming.

### setOwnsDestination:

- (void) setOwnsDestination: (BOOL)flag;
Description forthcoming.

### setPropagatesPrimaryKey:

- (void) setPropagatesPrimaryKey: (BOOL)flag;
Description forthcoming.

### setToMany:

- (void) setToMany: (BOOL)flag;
Description forthcoming.

### setUserInfo:

- (void) setUserInfo: (NSDictionary*)dictionary;
Description forthcoming.

### validateName:

- (NSException*) validateName: (NSString*)name;
Description forthcoming.

# Software documentation for the EORelationship(EORelationshipPrivate2) category

## EORelationship(EORelationshipPrivate2)

> Declared in:
>   EOAccess/EORelationship.h

Description forthcoming.

### Method summary

- -_definitionArray
- -_deleteRuleFromString:
- -_flushCache
- -_foreignKeyForSourceRow:
- -_joinsChanged
- -_leftSideKeyMap
- -_rightSideKeyMap
- -_sourceAttributeNames
- -_sourceRowToForeignKeyMapping
- -_stringFromDeleteRule:
- -_substitutionRelationshipForRow:
- -auxiliaryQualifier
- -isPropagatesPrimaryKeyPossible
- -joinForAttribute:
- -qualifierOmittingAuxiliaryQualifierWithSourceRow:
- -setAuxiliaryQualifier:

### _definitionArray

- (EOExpressionArray*) _definitionArray;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _deleteRuleFromString:

- (EODeleteRule) _deleteRuleFromString: (NSString*)deleteRuleString;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _flushCache

- (void) _flushCache;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _foreignKeyForSourceRow:

- (EOMutableKnownKeyDictionary*) _foreignKeyForSourceRow: (NSDictionary*)row;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.
Return dictionary of key/value for destination object of source row/object

### _joinsChanged

- (void) _joinsChanged;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _leftSideKeyMap

- (NSDictionary*) _leftSideKeyMap;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _rightSideKeyMap

- (NSDictionary*) _rightSideKeyMap;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _sourceAttributeNames

- (NSArray*) _sourceAttributeNames;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _sourceRowToForeignKeyMapping

- (EOMKKDSubsetMapping*) _sourceRowToForeignKeyMapping;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _stringFromDeleteRule:

- (NSString*) _stringFromDeleteRule: (EODeleteRule)deleteRule;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _substitutionRelationshipForRow:

- (EORelationship*) _substitutionRelationshipForRow: (NSDictionary*)row;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### auxiliaryQualifier

- (EOQualifier*) auxiliaryQualifier;
Description forthcoming.

### isPropagatesPrimaryKeyPossible

- (BOOL) isPropagatesPrimaryKeyPossible;
Description forthcoming.

### joinForAttribute:

- (EOJoin*) joinForAttribute: (EOAttribute*)attribute;
Description forthcoming.

### qualifierOmittingAuxiliaryQualifierWithSourceRow:

- (EOQualifier*) qualifierOmittingAuxiliaryQualifierWithSourceRow: (NSDictionary*)row;
Description forthcoming.

### setAuxiliaryQualifier:

- (void) setAuxiliaryQualifier: (EOQualifier*)qualifier;
Description forthcoming.

# Software documentation for the EORelationship(EORelationshipValueMapping) category

## EORelationship(EORelationshipValueMapping)

> Declared in:
>   EOAccess/EORelationship.h

Description forthcoming.

### Method summary

- -validateValue:

### validateValue:

- (NSException*) validateValue: (id*)valueP;
If the reciever is a manditory relationship, this method returns an exception if the value pointed to by VALUEP is either `nil` or the EONull instance for to-one relationships or an empty NSArray for to-many relationships. Otherwise it returns `nil`. EOClassDescription adds further information to this exception before it gets passed to the application or user.

# Software documentation for the EORelationship(EORelationshipXX) category

## EORelationship(EORelationshipXX)

> Declared in:
>   EOAccess/EORelationship.h

Description forthcoming.

### Method summary

- -_intermediateAttributes
- -_setSourceToDestinationKeyMap:
- -_sourceToDestinationKeyMap
- -firstRelationship
- -foreignKeyInDestination
- -intermediateEntity
- -isMultiHop
- -isToManyToOne
- -lastRelationship
- -primaryKeyForTargetRowFromSourceDBSnapshot:
- -qualifierForDBSnapshot:
- -relationshipPath

### _intermediateAttributes

- (NSArray*) _intermediateAttributes;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _setSourceToDestinationKeyMap:

- (void) _setSourceToDestinationKeyMap: (NSDictionary*)sourceToDestinationKeyMap;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _sourceToDestinationKeyMap

- (NSDictionary*) _sourceToDestinationKeyMap;
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### firstRelationship

- (EORelationship*) firstRelationship;
Return the 1st relationship if self is flattened, self otherwise.

### foreignKeyInDestination

- (BOOL) foreignKeyInDestination;
Description forthcoming.

### intermediateEntity

- (EOEntity*) intermediateEntity;
Description forthcoming.

### isMultiHop

- (BOOL) isMultiHop;
Description forthcoming.

### isToManyToOne

- (BOOL) isToManyToOne;
Description forthcoming.

### lastRelationship

- (EORelationship*) lastRelationship;
Return the last relationship if self is flattened, self otherwise.

### primaryKeyForTargetRowFromSourceDBSnapshot:

- (NSDictionary*) primaryKeyForTargetRowFromSourceDBSnapshot: (NSDictionary*)dbSnapshot;
Description forthcoming.

### qualifierForDBSnapshot:

- (EOQualifier*) qualifierForDBSnapshot: (NSDictionary*)dbSnapshot;
Description forthcoming.

### relationshipPath

- (NSString*) relationshipPath;
Return relationship path (like toRel1.toRel2) if self is flattened, slef name otherwise.

# EORelationship types

### EOJoinSemantic

typedef enum ... EOJoinSemantic;
Description forthcoming.

Up