2.3.4.3. 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);
    ...
}