| @since J2EE1.3 |
| The ejb-relationship-role element describes a role within a relationship. |
| There are two roles in each relationship. The ejb-relationship-role element contains an optional description; an optional name for the relationship role; a specification of the multiplicity of the role; an optional specification of cascade-delete functionality for the role; the role source; and a declaration of the cmr-field, if any, by means of which the other side of the relationship is accessed from the perspective of the role source. The multiplicity and relationship-role-source element are mandatory. The relationship-role-source element designates an entity-bean by means of an ejb-name element. For bidirectional relationships, both roles of a relationship must declare a relationship-role-source element that specifies a cmr-field in terms of which the relationship is accessed. The lack of a cmr-field element in an ejb-relationship-role specifies that the relationship is unidirectional in navigability and that entity bean that participates in the relationship is "not aware" of the relationship. |
| |
| @invariant multiplicity != null |
| @invariant roleSource != null |
| @invariant Cascade delete can only be specified in an EJBRelationshipRole element in which the roleSource element specifies a dependent object class. |
| @invariant Cascade delete can only be specified for an EJBRelationshipRole contained in an EJBrelation in which the other EJBRelationshipRole element specifies a multiplicity of One. |
| |
| Example: |
| <ejb-relation> |
| <ejb-relation-name>Product-LineItem</ejb-relation-name> |
| <ejb-relationship-role> |
| <ejb-relationship-role-name>product-has-lineitems</ejb-relationship-role-name> |
| <multiplicity>One</multiplicity> |
| <relationship-role-source> |
| <ejb-name>ProductEJB</ejb-name> |
| </relationship-role-source> |
| </ejb-relationship-role> |
| ... |