From c30e3bf78c1ab2c8a23d31298f55caf09e21d75e Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Mon, 20 Jun 2016 22:54:08 +1200 Subject: [PATCH] #746 - SqlQuery with named parameter and limit/offset gives SQL exception --- .../server/core/RelationalQueryRequest.java | 2 +- .../tests/query/sqlquery/SqlQueryTests.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/RelationalQueryRequest.java b/src/main/java/com/avaje/ebeaninternal/server/core/RelationalQueryRequest.java index 6a6d4aacb..a43845e0a 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/core/RelationalQueryRequest.java +++ b/src/main/java/com/avaje/ebeaninternal/server/core/RelationalQueryRequest.java @@ -219,7 +219,7 @@ public final class RelationalQueryRequest { int maxRows = query.getMaxRows(); if (firstRow > 0 || maxRows > 0) { return ebeanServer.getDatabasePlatform().getBasicSqlLimiter() - .limit(query.getQuery(), firstRow, maxRows); + .limit(sql, firstRow, maxRows); } return sql; } diff --git a/src/test/java/com/avaje/tests/query/sqlquery/SqlQueryTests.java b/src/test/java/com/avaje/tests/query/sqlquery/SqlQueryTests.java index 214f52f05..c5e507287 100644 --- a/src/test/java/com/avaje/tests/query/sqlquery/SqlQueryTests.java +++ b/src/test/java/com/avaje/tests/query/sqlquery/SqlQueryTests.java @@ -70,6 +70,22 @@ public class SqlQueryTests extends BaseTestCase { assertThat(sql.get(0)).contains("Select * from o_order order by id limit 10"); } + @Test + public void maxRows_withParam() { + + ResetBasicData.reset(); + + SqlQuery sqlQuery = Ebean.createSqlQuery("select * from o_order where o_order.id > :id order by id "); + sqlQuery.setParameter("id", 3); + sqlQuery.setMaxRows(10); + + LoggedSqlCollector.start(); + sqlQuery.findList(); + List sql = LoggedSqlCollector.stop(); + + assertThat(sql.get(0)).contains("select * from o_order where o_order.id > ? order by id limit 10;"); + } + @Test public void findEachMaxRows() {