org.eclipse.persistence.config.CacheUsage Maven / Gradle / Ivy
Show all versions of eclipselink Show documentation
/*
* Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.config;
/**
* Cache usage hint values.
* Cache usage allows the cache to be used on queries to avoid accessing the database.
* By default for JPA queries the cache is not checked before accessing the database,
* but is used after accessing the database to avoid re-building the objects and avoid
* accessing the database for relationships.
*
* Cache usage can also be used for modify Update-All and Delete-All queries.
* For modify-all queries it effects how the cache is updated, either NoCache or Invalidate.
* By default modify-all queries invalidate the cache.
*
* The class contains all the valid values for QueryHints.CACHE_USAGE query hint.
*
* JPA Query Hint Usage:
*
*
query.setHint(QueryHints.CACHE_USAGE, CacheUsage.CheckCacheOnly);
*
or
*
@QueryHint(name=QueryHints.CACHE_USAGE, value=CacheUsage.CheckCacheOnly)
*
*
Hint values are case-insensitive.
* "" could be used instead of default value CacheUsage.DEFAULT.
*
* @see QueryHints
*/
public class CacheUsage {
/**
* By default the descriptor default is used, which is to not check the cache first.
*/
public static final String UseEntityDefault = "UseEntityDefault";
/**
* Do not check the cache first, this is the default for JPA Queries.
*/
public static final String DoNotCheckCache = "DoNotCheckCache";
/**
* Configure the cache to be checked first if the query is by primary key (only).
* This can only be used on queries that return a single entity.
*/
public static final String CheckCacheByExactPrimaryKey = "CheckCacheByExactPrimaryKey";
/**
* Configure the cache to be checked first if the query contains the primary key.
* This can only be used on queries that return a single entity.
*/
public static final String CheckCacheByPrimaryKey = "CheckCacheByPrimaryKey";
/**
* Configure the cache to be searched for any matching object before accesing the database.
* This can only be used on queries that return a single entity.
*/
public static final String CheckCacheThenDatabase = "CheckCacheThenDatabase";
/**
* Configure the cache to be searched for any matching objects.
* Any objects not currently in the cache will not be returned.
* This can only be used on queries that return a single set of entities.
*/
public static final String CheckCacheOnly = "CheckCacheOnly";
/**
* Configure the query results to be conformed with the current persistence context.
* This allows non-flushed changes to be included in the query.
* This can only be used on queries that return a single set of entities.
*/
public static final String ConformResultsInUnitOfWork = "ConformResultsInUnitOfWork";
/**
* Configures a modify-all query to not invalidate the cache.
*/
public static final String NoCache = "NoCache";
/**
* Configures a modify-all query to invalidate the cache.
*/
public static final String Invalidate = "Invalidate";
public static final String DEFAULT = UseEntityDefault;
}