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; + } + }