From ca73eff5190beed8a538df6c88fa162a5981597d Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Wed, 2 Mar 2016 23:25:58 +1300 Subject: [PATCH] #582 - ElasticSearch: Add setUseDocStore(true) on ExpressionList ... for fluid query style --- .../java/com/avaje/ebean/ExpressionList.java | 26 +++++++++++ .../expression/DefaultExpressionList.java | 15 +++++++ .../server/expression/JunctionExpression.java | 43 +++++++++++++------ 3 files changed, 70 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/avaje/ebean/ExpressionList.java b/src/main/java/com/avaje/ebean/ExpressionList.java index 316efbdad..51e79fd1d 100644 --- a/src/main/java/com/avaje/ebean/ExpressionList.java +++ b/src/main/java/com/avaje/ebean/ExpressionList.java @@ -380,6 +380,32 @@ public interface ExpressionList extends Serializable { */ Query setUseQueryCache(boolean useCache); + /** + * Set to true if this query should execute against the doc store. + *

+ * When setting this you may also consider disabling lazy loading. + *

+ */ + Query setUseDocStore(boolean useDocsStore); + + /** + * Set true if you want to disable lazy loading. + *

+ * That is, once the object graph is returned further lazy loading is disabled. + *

+ */ + Query setDisableLazyLoading(boolean disableLazyLoading); + + /** + * Disable read auditing for this query. + *

+ * This is intended to be used when the query is not a user initiated query and instead + * part of the internal processing in an application to load a cache or document store etc. + * In these cases we don't want the query to be part of read auditing. + *

+ */ + Query setDisableReadAuditing(); + /** * Add expressions to the having clause. *

diff --git a/src/main/java/com/avaje/ebeaninternal/server/expression/DefaultExpressionList.java b/src/main/java/com/avaje/ebeaninternal/server/expression/DefaultExpressionList.java index 47998d600..b612b46e2 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/expression/DefaultExpressionList.java +++ b/src/main/java/com/avaje/ebeaninternal/server/expression/DefaultExpressionList.java @@ -324,6 +324,21 @@ public class DefaultExpressionList implements SpiExpressionList { return query.setUseQueryCache(useCache); } + @Override + public Query setUseDocStore(boolean useDocsStore) { + return query.setUseDocStore(useDocsStore); + } + + @Override + public Query setDisableLazyLoading(boolean disableLazyLoading) { + return query.setDisableLazyLoading(disableLazyLoading); + } + + @Override + public Query setDisableReadAuditing() { + return query.setDisableReadAuditing(); + } + @Override public ExpressionList having() { return query.having(); diff --git a/src/main/java/com/avaje/ebeaninternal/server/expression/JunctionExpression.java b/src/main/java/com/avaje/ebeaninternal/server/expression/JunctionExpression.java index f25eefa0e..6ed39b1b5 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/expression/JunctionExpression.java +++ b/src/main/java/com/avaje/ebeaninternal/server/expression/JunctionExpression.java @@ -44,7 +44,7 @@ abstract class JunctionExpression implements Junction, SpiExpression, Expr private static final long serialVersionUID = -645619859900030678L; - Conjunction(com.avaje.ebean.Query query, ExpressionList parent) { + Conjunction(Query query, ExpressionList parent) { super(false, AND, query, parent); } @@ -61,7 +61,7 @@ abstract class JunctionExpression implements Junction, SpiExpression, Expr private static final long serialVersionUID = -8464470066692221413L; - Disjunction(com.avaje.ebean.Query query, ExpressionList parent) { + Disjunction(Query query, ExpressionList parent) { super(true, OR, query, parent); } @@ -84,7 +84,7 @@ abstract class JunctionExpression implements Junction, SpiExpression, Expr */ private final boolean disjunction; - JunctionExpression(boolean disjunction, String joinType, com.avaje.ebean.Query query, ExpressionList parent) { + JunctionExpression(boolean disjunction, String joinType, Query query, ExpressionList parent) { this.disjunction = disjunction; this.joinType = joinType; this.exprList = new DefaultExpressionList(query, parent); @@ -532,7 +532,7 @@ abstract class JunctionExpression implements Junction, SpiExpression, Expr } @Override - public ExpressionList in(String propertyName, com.avaje.ebean.Query subQuery) { + public ExpressionList in(String propertyName, Query subQuery) { return exprList.in(propertyName, subQuery); } @@ -547,7 +547,7 @@ abstract class JunctionExpression implements Junction, SpiExpression, Expr } @Override - public ExpressionList notIn(String propertyName, com.avaje.ebean.Query subQuery) { + public ExpressionList notIn(String propertyName, Query subQuery) { return exprList.notIn(propertyName, subQuery); } @@ -612,7 +612,7 @@ abstract class JunctionExpression implements Junction, SpiExpression, Expr } @Override - public com.avaje.ebean.Query order(String orderByClause) { + public Query order(String orderByClause) { return exprList.order(orderByClause); } @@ -622,12 +622,12 @@ abstract class JunctionExpression implements Junction, SpiExpression, Expr } @Override - public com.avaje.ebean.Query orderBy(String orderBy) { + public Query orderBy(String orderBy) { return exprList.orderBy(orderBy); } @Override - public com.avaje.ebean.Query query() { + public Query query() { return exprList.query(); } @@ -647,7 +647,7 @@ abstract class JunctionExpression implements Junction, SpiExpression, Expr } @Override - public com.avaje.ebean.Query select(String properties) { + public Query select(String properties) { return exprList.select(properties); } @@ -657,27 +657,27 @@ abstract class JunctionExpression implements Junction, SpiExpression, Expr } @Override - public com.avaje.ebean.Query setFirstRow(int firstRow) { + public Query setFirstRow(int firstRow) { return exprList.setFirstRow(firstRow); } @Override - public com.avaje.ebean.Query setMapKey(String mapKey) { + public Query setMapKey(String mapKey) { return exprList.setMapKey(mapKey); } @Override - public com.avaje.ebean.Query setMaxRows(int maxRows) { + public Query setMaxRows(int maxRows) { return exprList.setMaxRows(maxRows); } @Override - public com.avaje.ebean.Query setOrderBy(String orderBy) { + public Query setOrderBy(String orderBy) { return exprList.setOrderBy(orderBy); } @Override - public com.avaje.ebean.Query setUseCache(boolean useCache) { + public Query setUseCache(boolean useCache) { return exprList.setUseCache(useCache); } @@ -686,6 +686,21 @@ abstract class JunctionExpression implements Junction, SpiExpression, Expr return exprList.setUseQueryCache(useCache); } + @Override + public Query setUseDocStore(boolean useDocsStore) { + return exprList.setUseDocStore(useDocsStore); + } + + @Override + public Query setDisableLazyLoading(boolean disableLazyLoading) { + return exprList.setDisableLazyLoading(disableLazyLoading); + } + + @Override + public Query setDisableReadAuditing() { + return exprList.setDisableReadAuditing(); + } + @Override public ExpressionList startsWith(String propertyName, String value) { return exprList.startsWith(propertyName, value);