diff --git a/src/main/java/io/ebeaninternal/api/SpiQuery.java b/src/main/java/io/ebeaninternal/api/SpiQuery.java index 869f2ca1c..1134d660f 100644 --- a/src/main/java/io/ebeaninternal/api/SpiQuery.java +++ b/src/main/java/io/ebeaninternal/api/SpiQuery.java @@ -9,10 +9,10 @@ import io.ebean.Query; import io.ebean.bean.CallStack; import io.ebean.bean.ObjectGraphNode; import io.ebean.bean.PersistenceContext; -import io.ebean.event.BeanQueryRequest; import io.ebean.event.readaudit.ReadEvent; import io.ebean.plugin.BeanType; import io.ebeaninternal.server.autotune.ProfilingListener; +import io.ebeaninternal.server.core.SpiOrmQueryRequest; import io.ebeaninternal.server.deploy.BeanDescriptor; import io.ebeaninternal.server.deploy.BeanPropertyAssocMany; import io.ebeaninternal.server.deploy.TableJoin; @@ -566,7 +566,7 @@ public interface SpiQuery extends Query, TxnProfileEventCodes { * The query plan excludes actual bind values (as they don't effect the query plan). *

*/ - CQueryPlanKey prepare(BeanQueryRequest request); + CQueryPlanKey prepare(SpiOrmQueryRequest request); /** * Calculate a hash based on the bind values used in the query. diff --git a/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java b/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java index e63a49d56..7df2185b3 100644 --- a/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java +++ b/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java @@ -12,7 +12,6 @@ import io.ebean.common.BeanList; import io.ebean.common.CopyOnFirstWriteList; import io.ebean.event.BeanFindController; import io.ebean.event.BeanQueryAdapter; -import io.ebean.event.BeanQueryRequest; import io.ebean.text.json.JsonReadOptions; import io.ebeaninternal.api.BeanCacheResult; import io.ebeaninternal.api.CQueryPlanKey; @@ -52,7 +51,7 @@ import java.util.function.Predicate; /** * Wraps the objects involved in executing a Query. */ -public final class OrmQueryRequest extends BeanRequest implements BeanQueryRequest, SpiOrmQueryRequest { +public final class OrmQueryRequest extends BeanRequest implements SpiOrmQueryRequest { private static final Logger log = LoggerFactory.getLogger(OrmQueryRequest.class); diff --git a/src/main/java/io/ebeaninternal/server/core/SpiOrmQueryRequest.java b/src/main/java/io/ebeaninternal/server/core/SpiOrmQueryRequest.java index 279ddf6c9..32ab198ff 100644 --- a/src/main/java/io/ebeaninternal/server/core/SpiOrmQueryRequest.java +++ b/src/main/java/io/ebeaninternal/server/core/SpiOrmQueryRequest.java @@ -2,6 +2,7 @@ package io.ebeaninternal.server.core; import io.ebean.QueryIterator; import io.ebean.Version; +import io.ebean.event.BeanQueryRequest; import io.ebeaninternal.api.SpiQuery; import io.ebeaninternal.server.deploy.BeanDescriptor; import io.ebeanservice.docstore.api.DocQueryRequest; @@ -15,7 +16,7 @@ import java.util.function.Predicate; /** * Defines the ORM query request api. */ -public interface SpiOrmQueryRequest extends DocQueryRequest { +public interface SpiOrmQueryRequest extends BeanQueryRequest, DocQueryRequest { /** * Return the query. @@ -26,7 +27,7 @@ public interface SpiOrmQueryRequest extends DocQueryRequest { /** * Return the associated BeanDescriptor. */ - BeanDescriptor getBeanDescriptor(); + BeanDescriptor getBeanDescriptor(); /** * This will create a local (readOnly) transaction if no current transaction diff --git a/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java b/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java index 6a8648e90..103e5d483 100644 --- a/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java +++ b/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java @@ -39,7 +39,7 @@ import io.ebeaninternal.api.SpiNamedParam; import io.ebeaninternal.api.SpiQuery; import io.ebeaninternal.api.SpiQuerySecondary; import io.ebeaninternal.server.autotune.ProfilingListener; -import io.ebeaninternal.server.core.OrmQueryRequest; +import io.ebeaninternal.server.core.SpiOrmQueryRequest; import io.ebeaninternal.server.deploy.BeanDescriptor; import io.ebeaninternal.server.deploy.BeanPropertyAssocMany; import io.ebeaninternal.server.deploy.TableJoin; @@ -1040,10 +1040,10 @@ public class DefaultOrmQuery implements SpiQuery { * Prepare the query which prepares any expressions (sub-query expressions etc) and calculates the query plan key. */ @Override - public CQueryPlanKey prepare(BeanQueryRequest request) { + public CQueryPlanKey prepare(SpiOrmQueryRequest request) { prepareExpressions(request); - prepareForPaging((OrmQueryRequest) request); + prepareForPaging(request); queryPlanKey = createQueryPlanKey(); return queryPlanKey; } @@ -1066,7 +1066,7 @@ public class DefaultOrmQuery implements SpiQuery { * property to ensure unique row ordering for predicable paging but only in * case, this is not a distinct query */ - private void prepareForPaging(OrmQueryRequest request) { + private void prepareForPaging(SpiOrmQueryRequest request) { // add the rawSql statement - if any if (orderByIsEmpty()) { diff --git a/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java b/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java index 0d3ee55c9..d9e621221 100644 --- a/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java +++ b/src/test/java/io/ebeaninternal/server/querydefn/DefaultOrmQueryTest.java @@ -18,7 +18,7 @@ public class DefaultOrmQueryTest extends BaseTestCase { public void when_forUpdate_then_excludeFromBeanCache() { DefaultOrmQuery q1 = (DefaultOrmQuery) Ebean.find(Customer.class) - .setForUpdate(true).where().eq("id", 42).query(); + .forUpdate().where().eq("id", 42).query(); assertThat(q1.getUseBeanCache()).isSameAs(CacheMode.OFF); } @@ -88,13 +88,13 @@ public class DefaultOrmQueryTest extends BaseTestCase { } @Test - public void when_diffFirstMaxRows_then_differentPlan() throws Exception { + public void when_diffFirstMaxRows_then_differentPlan() { - DefaultOrmQuery query1 = (DefaultOrmQuery) Ebean.find(Order.class) + DefaultOrmQuery query1 = (DefaultOrmQuery) Ebean.find(Order.class) .setFirstRow(0) .setMaxRows(31); - DefaultOrmQuery query2 = (DefaultOrmQuery) Ebean.find(Order.class) + DefaultOrmQuery query2 = (DefaultOrmQuery) Ebean.find(Order.class) .setFirstRow(1) .setMaxRows(0); @@ -102,12 +102,12 @@ public class DefaultOrmQueryTest extends BaseTestCase { assertThat(query1.createQueryPlanKey()).isNotEqualTo(query2.createQueryPlanKey()); } - private void prepare(DefaultOrmQuery q1, DefaultOrmQuery q2) { + private void prepare(DefaultOrmQuery q1, DefaultOrmQuery q2) { - OrmQueryRequest r1 = createQueryRequest(SpiQuery.Type.LIST, q1, null); + OrmQueryRequest r1 = createQueryRequest(SpiQuery.Type.LIST, q1, null); q1.prepare(r1); - OrmQueryRequest r2 = createQueryRequest(SpiQuery.Type.LIST, q2, null); + OrmQueryRequest r2 = createQueryRequest(SpiQuery.Type.LIST, q2, null); q2.prepare(r2); } }