Вопрос

Использование EntitySchemaQuery для построения запросов к базе данных

Добрый день! Помогите добавить в имеющийся запрос выборку top 1 (первую запись из результирующего набора).

 

Имеется данный запрос на странице карточки клиента:

 

var recordId = this.get("Id");

                var esq = Ext.create("Terrasoft.EntitySchemaQuery", {

                    rootSchemaName: "Inspectors"

                });

                var filterGroup = new esq.createFilterGroup();

                filterGroup.logicalOperation = Terrasoft.LogicalOperatorType.AND;

                filterGroup.add("InspectorFilter1", esq.createColumnFilterWithParameter(

                    Terrasoft.ComparisonType.EQUAL, "Account", recordId));

                filterGroup.add("InspectorFilter2", esq.createColumnFilterWithParameter(

                    Terrasoft.ComparisonType.EQUAL, "InspectorsType", SNClientConstants.InspectorTypes.InspectorCredit));

                esq.addColumn("Inspector");    

                esq.getEntityCollection(function(result) {

                    if (result.success) {

                        var collection = result.collection;

                        collection.each(function(item) {

                            var inspector = item.get("Inspector");

                            if (inspector)

                            {

                                this.set("CreditInspectorCr", inspector);                                    

                            }

                        }, this);

                    }

                }, this);

  

Но он возвращает несколько записей, если таковые имеются в схеме, к которой обращаюсь. Мне же нужно получить только самую первую запись и самую "свежую" по дате создания. Подскажите, пожалуйста, как это условие добавить в выборку?

Нравится

2 комментария
Лучший ответ

Здравствуйте.

 

Вам нужно отсортировать записи по дате создания по убыванию и установить свойство rowCount = 1:

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
        rootSchemaName: "Inspectors"
});
var createdOnColumn = esq.addColumn("CreatedOn");
createdOnColumn.orderDirection = Terrasoft.OrderDirection.DESC;
createdOnColumn.orderPosition = 0;
esq.rowCount = 1;

 

Здравствуйте.

 

Вам нужно отсортировать записи по дате создания по убыванию и установить свойство rowCount = 1:

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
        rootSchemaName: "Inspectors"
});
var createdOnColumn = esq.addColumn("CreatedOn");
createdOnColumn.orderDirection = Terrasoft.OrderDirection.DESC;
createdOnColumn.orderPosition = 0;
esq.rowCount = 1;

 

Отлично! Большое спасибо!

Показать все комментарии