From 9252e725811fc8fa1244b528af0d0a386550ad6e Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 20 Jul 2022 07:45:20 +1200 Subject: [PATCH] #2748 - Fix such that .setLoadBeanCache(false) ... sets CacheMode.OFF --- ebean-api/src/main/java/io/ebean/Query.java | 3 ++- .../server/querydefn/DefaultOrmQuery.java | 2 +- .../src/main/java/io/ebean/typequery/TQRootBean.java | 6 ++++-- .../test/java/org/tests/basic/TestLoadBeanCache.java | 10 ++++++++++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/Query.java b/ebean-api/src/main/java/io/ebean/Query.java index dafabe37f..a9793a7ce 100644 --- a/ebean-api/src/main/java/io/ebean/Query.java +++ b/ebean-api/src/main/java/io/ebean/Query.java @@ -1579,10 +1579,11 @@ public interface Query extends CancelableQuery { Query setReadOnly(boolean readOnly); /** - * Will be deprecated - migrate to use setBeanCacheMode(CacheMode.RECACHE). + * Deprecated - migrate to use setBeanCacheMode(CacheMode.PUT) or other CacheMode. *

* When set to true all the beans from this query are loaded into the bean cache. */ + @Deprecated Query setLoadBeanCache(boolean loadBeanCache); /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java index 7fbdbb5a5..8c81ddd83 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/querydefn/DefaultOrmQuery.java @@ -1270,7 +1270,7 @@ public class DefaultOrmQuery extends AbstractQuery implements SpiQuery { @Override public final Query setLoadBeanCache(boolean loadBeanCache) { - this.useBeanCache = CacheMode.PUT; + this.useBeanCache = loadBeanCache ? CacheMode.PUT : CacheMode.OFF; return this; } diff --git a/ebean-querybean/src/main/java/io/ebean/typequery/TQRootBean.java b/ebean-querybean/src/main/java/io/ebean/typequery/TQRootBean.java index 566ce3f27..7f8621fb0 100644 --- a/ebean-querybean/src/main/java/io/ebean/typequery/TQRootBean.java +++ b/ebean-querybean/src/main/java/io/ebean/typequery/TQRootBean.java @@ -852,9 +852,11 @@ public abstract class TQRootBean { } /** - * When set to true all the beans from this query are loaded into the bean - * cache. + * Deprecated migrate to setBeanCacheMode() or setUseCache(). + *

+ * When set to true all the beans from this query are loaded into the bean cache. */ + @Deprecated public R setLoadBeanCache(boolean loadBeanCache) { query.setLoadBeanCache(loadBeanCache); return root; diff --git a/ebean-test/src/test/java/org/tests/basic/TestLoadBeanCache.java b/ebean-test/src/test/java/org/tests/basic/TestLoadBeanCache.java index 249a2d0b3..3448e1c2c 100644 --- a/ebean-test/src/test/java/org/tests/basic/TestLoadBeanCache.java +++ b/ebean-test/src/test/java/org/tests/basic/TestLoadBeanCache.java @@ -1,8 +1,10 @@ package org.tests.basic; +import io.ebean.Query; import io.ebean.xtest.BaseTestCase; import io.ebean.DB; import io.ebean.test.LoggedSql; +import io.ebeaninternal.api.SpiQuery; import org.junit.jupiter.api.Test; import org.tests.model.basic.Country; import org.tests.model.basic.Customer; @@ -16,6 +18,14 @@ import static org.junit.jupiter.api.Assertions.assertSame; class TestLoadBeanCache extends BaseTestCase { + @Test + void loadBeanCache_false() { + Query query = DB.find(Country.class).setLoadBeanCache(false); + + SpiQuery spiQuery = (SpiQuery) query; + assertThat(spiQuery.isBeanCachePut()).isFalse(); + } + @Test void testLoad() {