diff --git a/src/main/java/io/ebeaninternal/server/core/DefaultServer.java b/src/main/java/io/ebeaninternal/server/core/DefaultServer.java index 09d8721e8..d2498dba5 100644 --- a/src/main/java/io/ebeaninternal/server/core/DefaultServer.java +++ b/src/main/java/io/ebeaninternal/server/core/DefaultServer.java @@ -1351,8 +1351,9 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer { @Override public boolean exists(SpiQuery ormQuery, SpiTransaction transaction) { - ormQuery.setMaxRows(1); - SpiOrmQueryRequest request = createQueryRequest(Type.ID_LIST, ormQuery, transaction); + Query ormQueryCopy = ormQuery.copy(); + ormQueryCopy.setMaxRows(1); + SpiOrmQueryRequest request = createQueryRequest(Type.ID_LIST, ormQueryCopy, transaction); try { request.initTransIfRequired(); List ids = request.findIds(); diff --git a/src/test/java/org/tests/query/TestQueryExists.java b/src/test/java/org/tests/query/TestQueryExists.java index 5d887034b..b76bdabde 100644 --- a/src/test/java/org/tests/query/TestQueryExists.java +++ b/src/test/java/org/tests/query/TestQueryExists.java @@ -3,6 +3,8 @@ package org.tests.query; import io.ebean.BaseTestCase; import io.ebean.Ebean; import io.ebean.Query; +import io.ebeantest.LoggedSql; + import org.junit.Test; import org.tests.model.basic.Customer; import org.tests.model.basic.Order; @@ -23,10 +25,11 @@ public class TestQueryExists extends BaseTestCase { .where().gt("id", 1) .query(); + LoggedSql.start(); boolean check = query.exists(); + String sql = LoggedSql.stop().get(0); assertThat(check).isTrue(); - String sql = sqlOf(query); if (isH2() || isPostgres()) { assertThat(sql).contains("select t0.id from o_order t0 where t0.id > ? limit 1"); }