diff --git a/src/main/java/io/ebeaninternal/server/core/BeanRequest.java b/src/main/java/io/ebeaninternal/server/core/BeanRequest.java index 87200d964..f6d379d2f 100644 --- a/src/main/java/io/ebeaninternal/server/core/BeanRequest.java +++ b/src/main/java/io/ebeaninternal/server/core/BeanRequest.java @@ -97,6 +97,13 @@ public abstract class BeanRequest { return transaction; } + /** + * Set the transaction to use for this request. + */ + public void setTransaction(SpiTransaction transaction) { + this.transaction = transaction; + } + /** * Return true if SQL should be logged for this transaction. */ diff --git a/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java b/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java index 0bd300da7..e3fd3c678 100644 --- a/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java +++ b/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java @@ -532,4 +532,10 @@ public final class OrmQueryRequest extends BeanRequest implements BeanQueryRe query.setDefaultFetchBuffer(fetchSize); } + /** + * Return the tenantId associated with this request. + */ + public Object getTenantId() { + return (transaction == null) ? null : transaction.getTenantId(); + } } diff --git a/src/main/java/io/ebeaninternal/server/loadcontext/DLoadContext.java b/src/main/java/io/ebeaninternal/server/loadcontext/DLoadContext.java index bb65f8a64..09b74b8e9 100644 --- a/src/main/java/io/ebeaninternal/server/loadcontext/DLoadContext.java +++ b/src/main/java/io/ebeaninternal/server/loadcontext/DLoadContext.java @@ -93,7 +93,7 @@ public class DLoadContext implements LoadContext { public DLoadContext(OrmQueryRequest request, SpiQuerySecondary secondaryQueries) { - this.tenantId = request.getTransaction().getTenantId(); + this.tenantId = request.getTenantId(); this.persistenceContext = request.getPersistenceContext(); this.ebeanServer = request.getServer(); this.defaultBatchSize = request.getLazyLoadBatchSize(); diff --git a/src/main/java/io/ebeanservice/docstore/api/DocQueryRequest.java b/src/main/java/io/ebeanservice/docstore/api/DocQueryRequest.java index dadf5b114..ed13ceb4e 100644 --- a/src/main/java/io/ebeanservice/docstore/api/DocQueryRequest.java +++ b/src/main/java/io/ebeanservice/docstore/api/DocQueryRequest.java @@ -2,12 +2,23 @@ package io.ebeanservice.docstore.api; import io.ebean.text.json.JsonReadOptions; import io.ebeaninternal.api.SpiQuery; +import io.ebeaninternal.api.SpiTransaction; /** * A Query request for the document store. */ public interface DocQueryRequest { + /** + * Return the transaction for this request (can be null for document store only queries). + */ + SpiTransaction getTransaction(); + + /** + * Set the (document store) transaction to use for this query. + */ + void setTransaction(SpiTransaction transaction); + /** * Return the query for this request. */