Each EntityManager
is responsible for
managing the persistent identities of the managed objects in the
persistence context. The following methods allow you to interact
with the management of persistent identities. The behavior of these
methods is deeply affected by the persistence context type of the
EntityManager
; see
Section 7.3, “Persistence Context” for an
explanation of persistence contexts.
public <T> T find (Class<T> cls, Object oid);
This method returns the persistent instance of the given type with the given persistent identity. If the instance is already present in the current persistence context, the cached version will be returned. Otherwise, a new instance will be constructed and loaded with state from the datastore. If no entity with the given type and identity exists in the datastore, this method returns null.
public <T> T getReference (Class<T> cls, Object oid);
This method is similar to find
, but does not
necessarily go to the database when the entity is not found in cache.
The implementation may construct a hollow entity
and return it to you instead. Hollow entities do not have any
state loaded. The state only gets loaded when you attempt to access
a persistent field. At that time, the implementation may throw an
EntityNotFoundException
if it discovers that
the entity does not exist in the datastore. The implementation may
also throw an EntityNotFoundException
from
the getReference
method itself. Unlike
find
, getReference
does not return null.
public boolean contains (Object entity);
Returns true if the given entity is part of the current persistence context, and false otherwise. Removed entities are not considered part of the current persistence context.