3.5.4.5. Entity Manager Interface

public interface EntityManager
{
  void persist (Object entity);
  void refresh (Object entity);
  void remove (Object entity);

  void detach (Object entity);
  <T> T merge (T entity);

  void lock (Object entity, LockModeType lockMode);

  // Find by primary key
  <T> T find (Class<T> entityClass, Object primaryKey);

  // Find by primary key and return lazy reference
  <T> T getReference (Class<T> entityClass, Object primaryKey);

  // Clear persistence context and detach all entities
  void clear ();

  // Check whether persistence context contains managed entity
  boolean contains (Object entity);

  // Synchronize persistence context with database
  // Flush mode governs automatic synchronization
  // upon query execution or upon commit
  void flush ();
  FlushModeType getFlushMode ();
  void setFlushMode (FlushModeType flushMode);

  Query createQuery (String ejbqlString);
  Query createNamedQuery (String name);
  Query createNativeQuery (String sqlString);
  ...
}