The <relationship>
element is a child of the <entity>
element. It has the following attributes:
<relation name = '' -- relation name deleteRule = ( 0,DELETE_NULLIFY | 1,DELETE_DENY | 2,DELETE_CASCADE | 3,DELETE_NOACTION ) : 0 -- behaviour when object is deleted isClassProperty = '1' -- '0' or '1'; relation is also a class property multiplicityLowerBound = ( int > -1 ) : 0 multiplicityUpperBound = ( int > -1 | -1,* ) : 1 -- -1 or * indicate unconstrained upper bound destinationEntity = '' -- name of destination entity joinSemantic = ( 0,Inner | 1,FullOuter | 2,LeftOuter | 3,Right Outer ) : 0 displayLabel = '' -- text label to use in applications comment = '' -- a comment > </relation>
All these attributes are described in section 2.3.4.
Here are the possible values for these attributes, and their meaning:
isClassProperty
:DELETE NULLIFY
'1'
: DELETE DENY
'2'
: DELETE CASCADE
'3'
: DELETE NOACTION
Note: in future it will be possible to enter the real names (such as
DELETE_CASCADE
), not only their numerical value (defined in
module ClassDescription.
isClassProperty
:'1'
(Yes). '0'
stands for No.
multiplicityLowerBound
, multiplicityUpperBound
:'*'
or '-1'
for
an unconstrained upper bound.
Default values: '0'
for lower bound, '1'
for upper
bound.
joinSemantic
:'0'
: (default) Inner join
'1'
: Full outer join
'2'
: Left outer join
'3'
: Right outer join
(as defined in module Relationship)
The full definition of a relationship implies that it defines at least one join.
See also: