A.11. views.xml

Файлы данного типа используются для описания представлений, см. Раздел 4.2.3, «Представления»

Схема XML доступна по адресу http://schemas.haulmont.com/cuba/5.6/view.xsd

views - корневой элемент

Элементы views:

  • view - описатель View

    Атрибуты view:

    • class - класс сущности.

    • entity - имя сущности, например sales$Order. Может быть использован вместо атрибута class.

    • name - имя представления, должно быть уникальным в пределах сущности.

    • systemProperties - признак включения системных атрибутов сущности (входящих в состав базовых интерфейсов персистентных сущностей BaseEntity и Updatable). Необязательный атрибут, по умолчанию false.

    • overwrite - признак того, что данный описатель должен переопределить представление с таким же классом и именем, уже развернутое в репозитории. Необязательный атрибут, по умолчанию false.

    • extends - указывает имя представления той же сущности, от которого нужно унаследовать атрибуты. Порядок следования описателей в файле при этом не важен. Например, при указании extends="_local" в текущее представление будут включены все локальные атрибуты сущности. Необязательный атрибут.

    Элементы view:

    • property - описатель ViewProperty.

      Атрибуты property:

      • name - имя атрибута сущности.

      • view - для ссылочного атрибута указывает имя представления, с которым должна загружаться ассоциированная сущность. Порядок следования описателей в файле при этом не важен.

      • lazy - для ссылочных атрибутов признак того, что данный атрибут нужно не включать в Fetch Plan, а загружать отдельным SQL запросом, инициированным обращением к атрибуту. Необязательный атрибут, по умолчанию false.

        Рекомендуется использовать lazy для атрибутов-коллекций, если таких атрибутов больше одного для данного графа представлений. Т.е. устанавливайте lazy = "true" для всех коллекций, кроме одной.

      Элементы property:

      • property - описатель атрибута связанной сущности. Таким способом можно определить неименованное представление для связанной сущности прямо внутри текущего описателя (inline).

  • include - включение другого файла типа views.xml

    Атрибуты include:

    • file - путь к файлу по правилам интерфейса Resources

Пример:

<views xmlns="http://schemas.haulmont.com/cuba/view.xsd">

  <view class="com.sample.sales.entity.Order"
        name="orderWithCustomer"
        extends="_local">
      <property name="customer" view="_minimal"/>
  </view>

  <view class="com.sample.sales.entity.Item"
        name="itemsInOrder">
      <property name="quantity"/>
      <property name="product" view="_minimal"/>
  </view>

  <view class="com.sample.sales.entity.Order"
        name="orderWithCustomerDefinedInline"
        extends="_local">
      <property name="customer">
          <property name="name"/>
          <property name="email"/>
      </property>
  </view>

</views>

См. также свойство приложения cuba.viewsConfig