Предварительная выборка

Предварительная выборка объектов загрузки (от англ. eager loading - «жадная загрузка») - процесс, который позволяет указать в запросе какие связанные данные, в объёме достаточном для корректного отображения семантики связанного объекта, необходимо загрузить при выполнении запроса.

Предварительная выборка помогает в отображении объектов системы в тех случаях, когда данные находятся на большом уровне вложенности, например в атрибутах типа «Ссылка» и «Коллекция».

В мете применяется только в особых случаях и используется в основном для экономии временных ресурсов, в качестве альтернативы тонкой настройки.

Пример

Управление предварительной выборкой для атрибута определяется свойством eagerLoading принимающим значения true или false.

"properties": [
    {
      ...
      "eagerLoading": true,
      "formula": null
    }

Настройка

Рекомендуемый способ настройки предварительной выборки - через файл deploy.json проекта для атрибутов класса, навигации. Это позволит централизовано определить предварительно выбираемые атрибуты для многих классов.

Пример

"eagerLoading": {
          "node1": {
             "class1": {
                 "list": ["attr1", "attr2.attr3"],
                 "item": ["attr1", "attr2.attr3"]
              }
          }
        }

NB: Если вместо "node1" поставить "*", то при попадании из любой навигации на данный объект заявления можно использовать одну настройку класса для экспорта объекта.

Настройка для экспорта в списках и формах

Принцип настройки предварительной выборки для экспорта в списках и формах совпадает с настройкой в файле deploy.json, за одним исключением. Вместо list и item, указываем exportList и exportItem.

Пример

"eagerLoading": {
   "class1@ns": {
     "exportList": ["attr1", "attr2.attr3"]
   },
   "class1@ns": {
      "exportItem": ["attr1", "attr2.attr3.attr4"]
   }
}

Глубина предварительной выборки объектов загрузки

Глубина предварительной выборки задаётся свойством maxEagerDepth: 1 в файле deploy.json проекта.

Максимальная глубина предварительной выборки определяет максимально допустимый уровень вложенности объекта относительно открытого объекта на странице.