Предварительная выборка¶
Предварительная выборка объектов загрузки (от англ. 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
проекта.
Максимальная глубина предварительной выборки определяет максимально допустимый уровень вложенности объекта относительно открытого объекта на странице.