diff --git a/pom.xml b/pom.xml
index 19cda5e30..bb87496ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -117,7 +117,7 @@
io.ebean
ebean-annotation
- 4.3
+ 4.4
diff --git a/src/main/java/io/ebean/cache/ServerCacheOptions.java b/src/main/java/io/ebean/cache/ServerCacheOptions.java
index 6d32089c1..feb0623ee 100644
--- a/src/main/java/io/ebean/cache/ServerCacheOptions.java
+++ b/src/main/java/io/ebean/cache/ServerCacheOptions.java
@@ -12,6 +12,7 @@ public class ServerCacheOptions {
private int maxIdleSecs;
private int maxSecsToLive;
private int trimFrequency;
+ private boolean nearCache;
/**
* Construct with no set options.
@@ -40,6 +41,14 @@ public class ServerCacheOptions {
this.trimFrequency = cacheTuning.trimFrequency();
}
+ /**
+ * Create with nearCache option.
+ */
+ public ServerCacheOptions(boolean nearCache, CacheBeanTuning tuning) {
+ this(tuning);
+ this.nearCache = nearCache;
+ }
+
/**
* Apply any settings from the default settings that have not already been
* specifically set.
@@ -70,9 +79,24 @@ public class ServerCacheOptions {
copy.maxIdleSecs = maxIdleSecs;
copy.maxSecsToLive = maxSecsToLive;
copy.trimFrequency = trimFrequency;
+ copy.nearCache = nearCache;
return copy;
}
+ /**
+ * Return true if nearCache was explicitly turned on.
+ */
+ public boolean isNearCache() {
+ return nearCache;
+ }
+
+ /**
+ * Turn on nearCache option.
+ */
+ public void setNearCache(boolean nearCache) {
+ this.nearCache = nearCache;
+ }
+
/**
* Return the maximum cache size.
*/
diff --git a/src/main/java/io/ebeaninternal/server/cache/DefaultCacheHolder.java b/src/main/java/io/ebeaninternal/server/cache/DefaultCacheHolder.java
index 20e966f6e..71b3af1a8 100644
--- a/src/main/java/io/ebeaninternal/server/cache/DefaultCacheHolder.java
+++ b/src/main/java/io/ebeaninternal/server/cache/DefaultCacheHolder.java
@@ -1,5 +1,6 @@
package io.ebeaninternal.server.cache;
+import io.ebean.annotation.Cache;
import io.ebean.annotation.CacheBeanTuning;
import io.ebean.annotation.CacheQueryTuning;
import io.ebean.cache.QueryCacheEntryValidate;
@@ -123,9 +124,13 @@ class DefaultCacheHolder {
}
private ServerCacheOptions getBeanOptions(Class> cls) {
+
+ Cache cache = cls.getAnnotation(Cache.class);
+ boolean nearCache = (cache != null && cache.nearCache());
+
CacheBeanTuning tuning = cls.getAnnotation(CacheBeanTuning.class);
if (tuning != null) {
- return new ServerCacheOptions(tuning).applyDefaults(beanDefault);
+ return new ServerCacheOptions(nearCache, tuning).applyDefaults(beanDefault);
}
return beanDefault.copy();
}