From cc152347a296067d22f5b6ce50f63796e9f86810 Mon Sep 17 00:00:00 2001 From: Ivo Prajer Date: Wed, 1 Apr 2015 20:14:07 +0200 Subject: [PATCH] Fix passing parameters LIMIT/OFFSET to sql query in the findAll() --- .../src/main/java/org/dspace/content/Collection.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/dspace-api/src/main/java/org/dspace/content/Collection.java b/dspace-api/src/main/java/org/dspace/content/Collection.java index 06ed1386dd..a389b35139 100644 --- a/dspace-api/src/main/java/org/dspace/content/Collection.java +++ b/dspace-api/src/main/java/org/dspace/content/Collection.java @@ -28,6 +28,7 @@ import org.dspace.workflow.WorkflowItem; import org.dspace.xmlworkflow.storedcomponents.CollectionRole; import org.dspace.xmlworkflow.storedcomponents.XmlWorkflowItem; +import java.io.Serializable; import java.io.IOException; import java.io.InputStream; import java.sql.PreparedStatement; @@ -350,8 +351,14 @@ public class Collection extends DSpaceObject */ public static Collection[] findAll(Context context, Integer limit, Integer offset) throws SQLException { - TableRowIterator tri = DatabaseManager.queryTable(context, "collection", - "SELECT * FROM collection ORDER BY name limit ? offset ?", limit, offset); + StringBuffer query = new StringBuffer("SELECT * FROM collection ORDER BY name"); + List params = new ArrayList(); + + DatabaseManager.applyOffsetAndLimit(query, params, offset, limit); + + TableRowIterator tri = DatabaseManager.query( + context, query.toString(), params.toArray() + ); List collections = new ArrayList();