/*
* Copyright (c) 2008, 2009, 2011 Oracle, Inc. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution. The Eclipse Public License is available
* at http://www.eclipse.org/legal/epl-v10.html and the Eclipse Distribution License
* is available at http://www.eclipse.org/org/documents/edl-v10.php.
*/
package javax.persistence;
Flush mode setting.
When queries are executed within a transaction, if
FlushModeType.AUTO
is set on the Query
or
TypedQuery
object, or if the flush mode setting for the persistence context is AUTO
(the default) and a flush
mode setting has not been specified for the Query
or
TypedQuery
object, the persistence provider is
responsible for ensuring that all updates to the state of all
entities in the persistence context which could potentially affect
the result of the query are visible to the processing of the
query. The persistence provider implementation may achieve this by
flushing those entities to the database or by some other means.
If FlushModeType.COMMIT
is set, the effect of
updates made to entities in the persistence context upon queries is
unspecified.
If there is no transaction active, the persistence provider
must not flush to the database.
Since: Java Persistence 1.0
/**
* Flush mode setting.
* <p>
* <p> When queries are executed within a transaction, if
* <code>FlushModeType.AUTO</code> is set on the {@link
* javax.persistence.Query Query} or {@link javax.persistence.TypedQuery
* TypedQuery} object, or if the flush mode setting for the
* persistence context is <code>AUTO</code> (the default) and a flush
* mode setting has not been specified for the <code>Query</code> or
* <code>TypedQuery</code> object, the persistence provider is
* responsible for ensuring that all updates to the state of all
* entities in the persistence context which could potentially affect
* the result of the query are visible to the processing of the
* query. The persistence provider implementation may achieve this by
* flushing those entities to the database or by some other means.
* <p> If <code>FlushModeType.COMMIT</code> is set, the effect of
* updates made to entities in the persistence context upon queries is
* unspecified.
* <p>
* <p> If there is no transaction active, the persistence provider
* must not flush to the database.
*
* @since Java Persistence 1.0
*/
public enum FlushModeType {
Flushing to occur at transaction commit. The provider may flush
at other times, but is not required to.
/**
* Flushing to occur at transaction commit. The provider may flush
* at other times, but is not required to.
*/
COMMIT,
(Default) Flushing to occur at query execution.
/**
* (Default) Flushing to occur at query execution.
*/
AUTO
}