11.20 KeyMap Object
| Used on |
|
| Description | Describes a foreign key mapping from the entity referenced by its parent relation to the related entity or entities.
There must be precisely one key-map item for each field in the related primary key (but these can be in any order).
|
11.20.1 Property 'description'
|
11.20.2 Property 'foreignKey'
|
| Description | Identifies information in the parent end's entity, that is a foreign key to the related entity.
The foreign-key may be an attribute in the design model; if so, it will not be listed as a container-managed attribute in J2EE/EJB rendering.
The foreign-key can also be missing from the design model (it's not an attribute): in this case, a synthetic attribute will be created on the entity.
|
| Type | String |
| Required | true |
11.20.3 Property 'foreignKeyDbmsColumn'
|
| Description | This field is relevant where the foreign-key is not present in the design model.
In this case, we need to be able to specify the database column for the synthetic foreign-key attribute.
If you do not specify the foreign key DBMS column, the foreign-key name is used as the DBMS column.
Where the foreign-key property is the name of an attribute in the design model,
the foreign key DBMS column property is redundant: the database column to use is specified by the attribute's DBMS column property.
|
| Type | String |
11.20.4 Property 'name'
|
11.20.5 Property 'relatedKey'
|
| Description | Specifies the corresponding primary key column in the related entity.
If the related entity only has a single-valued primary key, then this property is optional -
the related attribute is the related entity's primary key.
If the related entity has a composite primary key, then this value is required.
|
| Type | String |
11.20.6 Property 'shared'
|
| Description | By default in CloudTranBuilder, classes and JavaBeans are shared. This means they are put into the GSBFramework jar. If you want them to be local to the PU they are defined in, set this 'shared' property to false. In that case, they will not be visible outside the PU. If you do this, you will have to make sure that any inheritance chain is reachable. For example, if class/Bean A extends class/bean B, you can't have A being shared but B not shared, because B would not be visible to A during compilation. It is a good idea, but not required, to set shared=false on classes with init-method's and destroy-method's.
|
| Type | boolean |
| Default | true |
11.20.7 Property 'text'
|
11.20.8 Property 'uid'
|
| Description | The 'uid' is a Unique IDentifier for reference-types (interfaces and classes) and methods in the business object model (and derivatives like J2EE).
The 'uid' uniquely identifies an object, even if the name (or signature of a method etc.) changes.
This will normally be generated by a modelling tool;
if not, it should be generated by the transform for a modelling format into the generator's native format.
Even if the uid is not put on a meta-class as a property, the transform to native format currently generates one anyway.
This should be based on a UUID or GUID type of structure (i.e. globally unique),
but may need additional embellishment when generating classes from patterns (so will not adhere to the UUID standard).
The standard renderings use '@' as a separator for these generated uid's. ':', quotes and other XML special characters should definitely not be used.
|
| Type | String |
|