From 96e195b9fbe0d081485930cc1c04c57451dd47b2 Mon Sep 17 00:00:00 2001 From: Tatyana Valkevych Date: Fri, 5 Jun 2015 11:01:39 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.1/Cloud) 105524: Merged 5.0.N (5.0.3) to HEAD-BUG-FIX (5.1/Cloud) 105458: Merged V4.2-BUG-FIX (4.2.5) to 5.0.N (5.0.3) 105368: Merged DEV to V4.2-BUG-FIX (4.2.5) 105328: MNT-14021 : Request to optimize db query performance when retrieving the trashcan item - applied limit to "select_GetArchivedNodesCannedQuery" query to optimize the general performance of the trashcan git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@105587 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../query-archived-nodes-common-SqlMap.xml | 1 + .../archive/GetArchivedNodesCannedQuery.java | 3 ++ .../GetArchivedNodesCannedQueryParams.java | 31 +++++++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/query-archived-nodes-common-SqlMap.xml b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/query-archived-nodes-common-SqlMap.xml index 6833b4861d..c6afbb13fe 100644 --- a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/query-archived-nodes-common-SqlMap.xml +++ b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/query-archived-nodes-common-SqlMap.xml @@ -37,5 +37,6 @@ order by childNode.id ASC order by childNode.id DESC + limit #{limit} \ No newline at end of file diff --git a/source/java/org/alfresco/repo/node/archive/GetArchivedNodesCannedQuery.java b/source/java/org/alfresco/repo/node/archive/GetArchivedNodesCannedQuery.java index b00ed147ec..d891c68bd7 100644 --- a/source/java/org/alfresco/repo/node/archive/GetArchivedNodesCannedQuery.java +++ b/source/java/org/alfresco/repo/node/archive/GetArchivedNodesCannedQuery.java @@ -74,6 +74,9 @@ public class GetArchivedNodesCannedQuery extends AbstractCannedQueryPermissions< return Collections.emptyList(); } + int resultsRequired = parameters.getResultsRequired(); + paramBean.setLimit(resultsRequired); + // note: refer to SQL for specific DB filtering and sorting List results = cannedQueryDAO.executeQuery(QUERY_NAMESPACE, QUERY_SELECT_GET_ARCHIVED_NODES, paramBean, 0, Integer.MAX_VALUE); diff --git a/source/java/org/alfresco/repo/node/archive/GetArchivedNodesCannedQueryParams.java b/source/java/org/alfresco/repo/node/archive/GetArchivedNodesCannedQueryParams.java index dbf4423a6b..2d9bee2191 100644 --- a/source/java/org/alfresco/repo/node/archive/GetArchivedNodesCannedQueryParams.java +++ b/source/java/org/alfresco/repo/node/archive/GetArchivedNodesCannedQueryParams.java @@ -28,6 +28,8 @@ package org.alfresco.repo.node.archive; public class GetArchivedNodesCannedQueryParams extends ArchivedNodeEntity { + private int limit; + /** * @param parentNodeId * @param assocTypeQNameId @@ -43,4 +45,33 @@ public class GetArchivedNodesCannedQueryParams extends ArchivedNodeEntity super(parentNodeId, nameQNameId, filter, assocTypeQNameId, sortOrderAscending, filterIgnoreCase); } + + /** + * @param parentNodeId + * @param assocTypeQNameId + * @param filter + * @param filterIgnoreCase + * @param nameQNameId + * @param sortOrderAscending + * @param limit + */ + public GetArchivedNodesCannedQueryParams(Long parentNodeId, Long assocTypeQNameId, + String filter, Boolean filterIgnoreCase, Long nameQNameId, Boolean sortOrderAscending, + int limit) + { + this(parentNodeId, assocTypeQNameId, filter, filterIgnoreCase, nameQNameId, + sortOrderAscending); + this.setLimit(limit); + } + + public int getLimit() + { + return limit; + } + + public void setLimit(int limit) + { + this.limit = limit; + } + }