Top Description Fields Constructors Methods
org.eclipse.persistence.config

public Class FlushClearCache

extends Object
Class Inheritance

FlushClearCache persistence property defines modes of cache handling after em.flush call followed by em.clear call. This property could be specified while creating either EntityManagerFactory (createEntityManagerFactory or persistence.xml) or EntityManager (createEntityManager); the latter overrides the former.

JPA persistence property Usage:

properties.add(PersistenceUnitProperties.FLUSH_CLEAR_CACHE, FlushClearCache.Drop);

Values are case-insensitive. "" could be used instead of default value FlushClearCache.DEFAULT.

Field Summary

Modifier and TypeField and Description
public static final String
public static final String
Drop

Call to clear method causes to drop the whole EntityManager cache.

public static final String
DropInvalidate

Call to clear method causes to drops the whole EntityManager cache, on commit the classes that have at least one object updated or deleted are invalidated in the shared cache.

public static final String
Merge

Call to clear method causes to drop from EntityManager cache only the objects that haven't been flushed.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

DEFAULTback to summary
public static final String DEFAULT
Dropback to summary
public static final String Drop

Call to clear method causes to drop the whole EntityManager cache. This is the fasteset and using the least memory mode - but after commit the shared cache potentially contains stale data.

DropInvalidateback to summary
public static final String DropInvalidate

Call to clear method causes to drops the whole EntityManager cache, on commit the classes that have at least one object updated or deleted are invalidated in the shared cache. This is a compromise mode: potentially a bit slower than drop, but has virtually the same memory efficiency. After commit all potentially stale data is invalidated in the shared cache.

Mergeback to summary
public static final String Merge

Call to clear method causes to drop from EntityManager cache only the objects that haven't been flushed. This is the most accurate mode: shared cache is perfect after commit; but the least memory effective: smbd repeatedly using flush followed by clear may eventually run out of memory in a huge transaction.

Constructor Detail

FlushClearCacheback to summary
public FlushClearCache()