public class FlushClearCache
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.
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.
public static final java.lang.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.