Package com.isomorphic.jpa

# Interface EMFProviderInterface

All Known Implementing Classes:
  `EMFProviderBMT`, `EMFProviderCMT`, `EMFProviderLMT`, `EMFProviderNoTransactions`, `EMFProviderSpring`

public interface EMFProviderInterface
Interface used to provide specific implementation of `EntityManager` and transaction acquiring and handling.

Implementation of this interface should provide at least two constructors:

1. default constructor - will be used if implementation is used as default EMF provider
2. constructor with single parameter of type `Properties` - will be used if implementation is used as additional named EMF provider

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `ENTITY_MANAGER`
  Name of sub property for resource reference to entity manager.
  `static final String`
  `ENTITY_MANAGER_FACTORY`
  Name of sub property for resource reference to entity manager factory.
  `static final String`
  `JPA_ENTITY_MANAGER`
  Name of property for resource reference to entity manager.
  `static final String`
  `JPA_ENTITY_MANAGER_FACTORY`
  Name of property for resource reference to entity manager factory.
  `static final String`
  `JPA_PERSISTENCE_UNIT_NAME`
  Name of property for persistence unit name.
  `static final String`
  `JPA_TRANSACTION`
  Name of property for resource reference to transaction or transaction manager.
  `static final String`
  `PERSISTENCE_UNIT_NAME`
  Name of sub property for persistence unit name.
  `static final String`
  `TRANSACTION`
  Name of sub property for resource reference to transaction or transaction manager.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `commitTransaction(Object tx)`
  Commits specified transaction.
  `jakarta.persistence.EntityManagerFactory`
  `get()`
  Returns `EntityManagerFactory`.
  `jakarta.persistence.EntityManager`
  `getEntityManager()`
  Returns `EntityManager` for persistence operations.
  `Object`
  `getTransaction(jakarta.persistence.EntityManager em)`
  Returns started transaction.
  `void`
  `returnEntityManager(jakarta.persistence.EntityManager em)`
  Closes `EntityManager`.
  `void`
  `rollbackTransaction(Object tx)`
  Rolls back specified transaction.

- ## Field Details

  - ### PERSISTENCE_UNIT_NAME

    static final String PERSISTENCE_UNIT_NAME
    Name of sub property for persistence unit name.
    See Also:
      - Constant Field Values

  - ### JPA_PERSISTENCE_UNIT_NAME

    static final String JPA_PERSISTENCE_UNIT_NAME
    Name of property for persistence unit name.
    See Also:
      - Constant Field Values

  - ### ENTITY_MANAGER

    static final String ENTITY_MANAGER
    Name of sub property for resource reference to entity manager.
    See Also:
      - Constant Field Values

  - ### JPA_ENTITY_MANAGER

    static final String JPA_ENTITY_MANAGER
    Name of property for resource reference to entity manager.
    See Also:
      - Constant Field Values

  - ### ENTITY_MANAGER_FACTORY

    static final String ENTITY_MANAGER_FACTORY
    Name of sub property for resource reference to entity manager factory.
    See Also:
      - Constant Field Values

  - ### JPA_ENTITY_MANAGER_FACTORY

    static final String JPA_ENTITY_MANAGER_FACTORY
    Name of property for resource reference to entity manager factory.
    See Also:
      - Constant Field Values

  - ### TRANSACTION

    static final String TRANSACTION
    Name of sub property for resource reference to transaction or transaction manager.
    See Also:
      - Constant Field Values

  - ### JPA_TRANSACTION

    static final String JPA_TRANSACTION
    Name of property for resource reference to transaction or transaction manager.
    See Also:
      - Constant Field Values

- ## Method Details

  - ### get

    jakarta.persistence.EntityManagerFactory get()
    Returns `EntityManagerFactory`.
    Returns:
      `EntityManagerFactory`.

  - ### getEntityManager

    jakarta.persistence.EntityManager getEntityManager() throws jakarta.persistence.PersistenceException
    Returns `EntityManager` for persistence operations.
    Returns:
      `EntityManager` for persistence operations.
    Throws:
      `jakarta.persistence.PersistenceException` - if unable to acquire `EntityManager`.

  - ### returnEntityManager

    void returnEntityManager(jakarta.persistence.EntityManager em)
    Closes `EntityManager`.
    Parameters:
      `em` - `EntityManager` which should be closed.

  - ### getTransaction

    Object getTransaction(jakarta.persistence.EntityManager em) throws Exception
    Returns started transaction.
    Parameters:
      `em` - `EntityManager` needed if joining to existing transaction or starting transaction locally.
    Returns:
      `Object` Already started transaction for persistence operations.
    Throws:
      `Exception` - if unable to acquire or open transaction.

  - ### commitTransaction

    void commitTransaction(Object tx) throws Exception
    Commits specified transaction.
    Parameters:
      `tx` - `Object` transaction to be commited.
    Throws:
      `Exception` - occured while committing transaction.

  - ### rollbackTransaction

    void rollbackTransaction(Object tx)
    Rolls back specified transaction.
    Parameters:
      `tx` - `Object` transaction to be rolled back.