Each dynamic property is actually a derived property that uses the atg.repository.dp.MapBackedAlias
derivation method to store and retrieve values. The property values are actually stored in properties called backing map properties.
If the addBackingMapPropertiesOnStartup
property of the repository component is true
, a set of four backing map properties is automatically generated for each item descriptor in the repository when it starts up. The backing map property used to hold a given value is determined by the value’s repository data type:
atgDynamicPropertyMapString
– Holdsstring
values.atgDynamicPropertyMapBigString
– Holdsbig
string
values.atgDynamicPropertyMapDouble
– Holdsfloat
anddouble
values.atgDynamicPropertyMapLong
– Holdsint
,date
,enumerated
,timestamp
,boolean
, andlong
values.
So, for example, if you create a product
item property named weightInGrams
that holds float
values, these values would be stored as atgDynamicPropertyMapDouble
properties of the product
item type.
The addBackingMapPropertiesOnStartup
property is set to true
by default for the product catalog and content management repositories. A set of backing map properties is generated for each item descriptor in these repositories. If you do not want backing map properties to be generated for a specific item descriptor, use an attribute
tag to set the skip-backing-map-generation
attribute to true
in the descriptor definition. For example:
<item-descriptor name="media-external" ...>
<attribute name="skip-backing-map-generation" value="true"/>
</item-descriptor>