| Modifier and Type | Optional Element and Description |
|---|---|
boolean |
enableBeanCache
Set this to false to disable the use of bean cache.
|
boolean |
enableQueryCache
Set this to true to enable the use of query cache.
|
String[] |
naturalKey
Specify the properties that is a natural unique identifier for the bean.
|
boolean |
nearCache
If set to true additionally use a near cache (for Redis and similar L2 cache options).
|
boolean |
readOnly
When set to true the beans returned from a query will default to be
readOnly.
|
String |
region
Specify a named cache region.
|
public abstract boolean nearCache
This does not apply to query caches (as they are always near caches) but applies to the bean caching (bean cache, natural key cache and collection ids cache).
Near caches are fast in that they are in local memory avoid going over the network to the remote cache with the downside of using more local memory and increasing the cache invalidation costs for updates and deletes (as cache invalidations need to propagate with near caching turned on).
Near caching is best with relatively many reads to few writes.
public abstract boolean enableQueryCache
By default query caching is disabled as the query cache invalidates frequently and so it is typically used for specific bean types and cases.
public abstract boolean enableBeanCache
By default bean caching is expected so this defaults to true. We might set this to false on a bean type that we want to use query caching but no bean caching (and this is expected to be a rare case).
When bean caching is enabled by default "find by id" and "find by unique natural key"
queries will try to use the bean cache. We use Query.setUseCache(boolean)
with false for the case when we do NOT want to use the bean cache.
public abstract String[] naturalKey
When a findOne() query is used with this property as the sole expression then there will be a lookup into the L2 natural key cache.
public abstract boolean readOnly
If the bean is readOnly and has no relationships then it may be sharable.
If you try to modify a readOnly bean it will throw an IllegalStateException.
public abstract String region
Regions can be turned on and off dynamically at runtime.
Depending on the cache implementation a region can potentially have different deployment targets - for example, with the Ebean redis cache a region could be configured to use a different redis server.
The "default" region is called r0.
Copyright © 2019. All rights reserved.