If you define a multiplicity on a class attribute with a complex data type, the generation will reflect this multiplicity.
In the following example, attribute address in class Customer has a complex data type based on class Address.
You also define the multiplicity 0..2 for attribute address:
When the Persistent check box is selected for the attribute and the class generation is also set to Persistent, then the attribute multiplicity becomes a cardinality on the reference between tables after OOM to PDM generation.
When the Persistent check box is selected for the attribute and the class generation is set to Embedded, all the attributes of the class used as data type are embedded into the table containing the column created for the attribute with complex data type. Attributes are generated as many times as required by multiplicity, provided multiplicity indicates a fixed value.
In the following example, attribute multiplicity is 0..2, so attributes will be embedded twice:
Embedded generation of complex data types is not possible when multiplicity is undefined (0..n).
When both attribute and class generation are set to Persistent, and when the class used as data type is generated as an abstract data type, the class is generated as an abstract data type without taking into account the multiplicity of the generated attribute.
However, for those DBMS that support ARRAY and LIST for abstract data types, the generation of a class into an abstract data type can reflect the attribute multiplicity in the following way: