Атрибуты элемента определяют состояние элемента.На самом деле они являются столбцами таблицы db, которая создается (за исключением динамических атрибутов) в результате процесса построения и обновления платформы.
Пользовательские атрибуты - это определенные определенные атрибуты, которые используются в определении системы типов дляопределены определенные свойства типа.В общем, если вы интерпретируете метаданные системы типов, вы можете прочитать атрибуты для достижения желаемого поведения.Они могут быть определены на различных уровнях
- На уровне типа элемента - пользовательские свойства используются для определения свойств для типа.Это пример, который вы разместили в теле вопроса.Пользовательские типы в вопросе
<custom-properties>
<property name="catalogItemType"><value>java.lang.Boolean.TRUE</value></property>
<property name="catalogVersionAttributeQualifier"><value>"catalogVersion"</value></property>
<property name="uniqueKeyAttributeQualifier"><value>"id"</value></property>
</custom-properties>
эти свойства определены на уровне типа - эти атрибуты обеспечивают осведомленность каталога на уровне типа.Эти атрибуты могут быть получены из этих свойств типа элемента во время выполнения с помощью метода getProperty (String propertyName). Есть и другие примеры.
Уровень отношений, см. Фрагмент ниже
<relation code="User2Addresses" generate="true" localized="false" autocreate="true">
<sourceElement type="User" cardinality="one" qualifier="owner">
<modifiers read="true" write="true" search="true" optional="true" initial="false"/>
</sourceElement>
<targetElement type="Address" cardinality="many" qualifier="addresses">
<modifiers read="true" write="true" search="true" optional="true" partof="true"/>
<custom-properties>
<property name="condition.query">
<value>"{original} is null"</value>
</property>
</custom-properties>
</targetElement>
</relation>
Свойство содержит строку, которая позднее добавляется в часть «где» запроса выбора, сгенерированного для отношения «один ко многим» или «многие к одному».
Атрибут упорядочения - определив
ordering.attribute , можно указать, какой атрибут будет использоваться для упорядочения многогранных элементов при извлечении из базы данных
<relation code="AbstractOrder2AbstractOrderEntry" localized="false" generate="true" autocreate="true">
<sourceElement type="AbstractOrder" qualifier="order" cardinality="one">
<modifiers read="true" write="true" search="true" optional="true" />
<custom-properties>
<property name="ordering.attribute">
<value>"entryNumber"</value>
</property>
</custom-properties>
</sourceElement>
<targetElement type="AbstractOrderEntry" qualifier="entries" cardinality="many" collectiontype="list" ordered="false" >
<modifiers read="true" write="true" search="true" optional="true" partof="true" />
</targetElement>
</relation>
Пользовательские атрибуты Backoffice - Backoffice позволит отображать все атрибуты любого типа (из коробки), тем не менее, есть некоторые специальные (скажем, технические) атрибуты, которые определенно не должны быть видны в пользовательском интерфейсе или по крайней мере должны быть доступны только для чтения.в пользовательском интерфейсе (независимо от того, какие права доступа они имеют).Для тех очень редких случаев hybris ввел два пользовательских атрибута, которые мы интерпретируем при сканировании системы типов
<property name="readOnlyForUI">
<value>Boolean.TRUE</value>
</property>
<property name="hiddenForUI">
<value>Boolean.TRUE</value>
</property>
Надеюсь, это поможет!