/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate;
import java.util.Locale;
Controls how the session interacts with the second-level cache and query cache.
Author: Gavin King, Strong Liu See Also:
/**
* Controls how the session interacts with the second-level cache and query cache.
*
* @author Gavin King
* @author Strong Liu
* @see Session#setCacheMode(CacheMode)
*/
public enum CacheMode {
The session may read items from the cache, and add items to the cache.
/**
* The session may read items from the cache, and add items to the cache.
*/
NORMAL( true, true ),
The session will never interact with the cache, except to invalidate
cache items when updates occur.
/**
* The session will never interact with the cache, except to invalidate
* cache items when updates occur.
*/
IGNORE( false, false ),
The session may read items from the cache, but will not add items,
except to invalidate items when updates occur.
/**
* The session may read items from the cache, but will not add items,
* except to invalidate items when updates occur.
*/
GET( false, true ),
The session will never read items from the cache, but will add items
to the cache as it reads them from the database.
/**
* The session will never read items from the cache, but will add items
* to the cache as it reads them from the database.
*/
PUT( true, false ),
The session will never read items from the cache, but will add items
to the cache as it reads them from the database. In this mode, the
effect of hibernate.cache.use_minimal_puts is bypassed, in
order to force a cache refresh.
/**
* The session will never read items from the cache, but will add items
* to the cache as it reads them from the database. In this mode, the
* effect of <tt>hibernate.cache.use_minimal_puts</tt> is bypassed, in
* order to <em>force</em> a cache refresh.
*/
REFRESH( true, false );
private final boolean isPutEnabled;
private final boolean isGetEnabled;
private CacheMode( boolean isPutEnabled, boolean isGetEnabled) {
this.isPutEnabled = isPutEnabled;
this.isGetEnabled = isGetEnabled;
}
Does this cache mode indicate that reads are allowed?
Returns: true
if cache reads are allowed; false
otherwise.
/**
* Does this cache mode indicate that reads are allowed?
*
* @return {@code true} if cache reads are allowed; {@code false} otherwise.
*/
public boolean isGetEnabled() {
return isGetEnabled;
}
Does this cache mode indicate that writes are allowed?
Returns: true
if cache writes are allowed; false
otherwise.
/**
* Does this cache mode indicate that writes are allowed?
*
* @return {@code true} if cache writes are allowed; {@code false} otherwise.
*/
public boolean isPutEnabled() {
return isPutEnabled;
}
Used to interpret externalized forms of this enum.
Params: - setting – The externalized form.
Throws: - MappingException – Indicates the external form was not recognized as a valid enum value.
Returns: The matching enum value.
/**
* Used to interpret externalized forms of this enum.
*
* @param setting The externalized form.
*
* @return The matching enum value.
*
* @throws MappingException Indicates the external form was not recognized as a valid enum value.
*/
public static CacheMode interpretExternalSetting(String setting) {
if (setting == null) {
return null;
}
try {
return CacheMode.valueOf( setting.toUpperCase(Locale.ROOT) );
}
catch ( IllegalArgumentException e ) {
throw new MappingException( "Unknown Cache Mode: " + setting );
}
}
}