mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-11-14 06:45:21 +00:00
#1275 - Additional refactor for - Add ServerConfig.setDefaultOrderById() ...
Removes the cast on DefaultOrmQuery.prepare()
This commit is contained in:
1 parent
83cf768369
commit
e751f991cb
5 files changed
+17
-17
No files matched your search
@@ -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<T> extends Query<T>, TxnProfileEventCodes {
|
||||
* The query plan excludes actual bind values (as they don't effect the query plan).
|
||||
* </p>
|
||||
*/
|
||||
CQueryPlanKey prepare(BeanQueryRequest<?> request);
|
||||
CQueryPlanKey prepare(SpiOrmQueryRequest<T> request);
|
||||
|
||||
/**
|
||||
* Calculate a hash based on the bind values used in the query.
|
||||
|
||||
@@ -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<T> extends BeanRequest implements BeanQueryRequest<T>, SpiOrmQueryRequest<T> {
|
||||
public final class OrmQueryRequest<T> extends BeanRequest implements SpiOrmQueryRequest<T> {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(OrmQueryRequest.class);
|
||||
|
||||
|
||||
@@ -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<T> extends DocQueryRequest<T> {
|
||||
public interface SpiOrmQueryRequest<T> extends BeanQueryRequest<T>, DocQueryRequest<T> {
|
||||
|
||||
/**
|
||||
* Return the query.
|
||||
@@ -26,7 +27,7 @@ public interface SpiOrmQueryRequest<T> extends DocQueryRequest<T> {
|
||||
/**
|
||||
* Return the associated BeanDescriptor.
|
||||
*/
|
||||
BeanDescriptor<?> getBeanDescriptor();
|
||||
BeanDescriptor<T> getBeanDescriptor();
|
||||
|
||||
/**
|
||||
* This will create a local (readOnly) transaction if no current transaction
|
||||
|
||||
@@ -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<T> implements SpiQuery<T> {
|
||||
* 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<T> request) {
|
||||
|
||||
prepareExpressions(request);
|
||||
prepareForPaging((OrmQueryRequest) request);
|
||||
prepareForPaging(request);
|
||||
queryPlanKey = createQueryPlanKey();
|
||||
return queryPlanKey;
|
||||
}
|
||||
@@ -1066,7 +1066,7 @@ public class DefaultOrmQuery<T> implements SpiQuery<T> {
|
||||
* property to ensure unique row ordering for predicable paging but only in
|
||||
* case, this is not a distinct query
|
||||
*/
|
||||
private void prepareForPaging(OrmQueryRequest<T> request) {
|
||||
private void prepareForPaging(SpiOrmQueryRequest<T> request) {
|
||||
|
||||
// add the rawSql statement - if any
|
||||
if (orderByIsEmpty()) {
|
||||
|
||||
@@ -18,7 +18,7 @@ public class DefaultOrmQueryTest extends BaseTestCase {
|
||||
public void when_forUpdate_then_excludeFromBeanCache() {
|
||||
|
||||
DefaultOrmQuery<Customer> q1 = (DefaultOrmQuery<Customer>) 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<Order> query1 = (DefaultOrmQuery<Order>) Ebean.find(Order.class)
|
||||
.setFirstRow(0)
|
||||
.setMaxRows(31);
|
||||
|
||||
DefaultOrmQuery<?> query2 = (DefaultOrmQuery<?>) Ebean.find(Order.class)
|
||||
DefaultOrmQuery<Order> query2 = (DefaultOrmQuery<Order>) 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 <T> void prepare(DefaultOrmQuery<T> q1, DefaultOrmQuery<T> q2) {
|
||||
|
||||
OrmQueryRequest<?> r1 = createQueryRequest(SpiQuery.Type.LIST, q1, null);
|
||||
OrmQueryRequest<T> r1 = createQueryRequest(SpiQuery.Type.LIST, q1, null);
|
||||
q1.prepare(r1);
|
||||
|
||||
OrmQueryRequest<?> r2 = createQueryRequest(SpiQuery.Type.LIST, q2, null);
|
||||
OrmQueryRequest<T> r2 = createQueryRequest(SpiQuery.Type.LIST, q2, null);
|
||||
q2.prepare(r2);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user