Class PersistenceProvider

java.lang.Object
org.eclipse.persistence.jpa.PersistenceProvider
All Implemented Interfaces:
jakarta.persistence.spi.PersistenceProvider, jakarta.persistence.spi.ProviderUtil

public class PersistenceProvider extends Object implements jakarta.persistence.spi.PersistenceProvider, jakarta.persistence.spi.ProviderUtil
This is the EclipseLink EJB 3.0 provider This provider should be used by JavaEE and JavaSE users.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Need to check that the provider property is null or set for EclipseLink
    jakarta.persistence.EntityManagerFactory
    createContainerEntityManagerFactory(jakarta.persistence.spi.PersistenceUnitInfo info, Map properties)
    Called by the container when an EntityManagerFactory is to be created.
    protected jakarta.persistence.EntityManagerFactory
    createContainerEntityManagerFactoryImpl(jakarta.persistence.spi.PersistenceUnitInfo info, Map properties, boolean requiresConnection)
     
    jakarta.persistence.EntityManagerFactory
    createEntityManagerFactory(String emName, Map properties)
    Called by Persistence class when an EntityManagerFactory is to be created.
    protected org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl
    createEntityManagerFactoryImpl(jakarta.persistence.spi.PersistenceUnitInfo puInfo, Map properties, boolean requiresConnection)
    Internal method to return the entity manager factory.
    void
    generateSchema(jakarta.persistence.spi.PersistenceUnitInfo info, Map properties)
    Create database schemas and/or tables and/or create DDL scripts as determined by the supplied properties.
    boolean
    generateSchema(String persistenceUnitName, Map properties)
    Create database schemas and/or tables and/or create DDL scripts as determined by the supplied properties.
    getClassLoader(String emName, Map properties)
    Answer the classloader to use to create an EntityManager.
    org.eclipse.persistence.internal.jpa.deployment.JPAInitializer
    Return JPAInitializer corresponding to the passed classLoader.
    jakarta.persistence.spi.ProviderUtil
    Return the utility interface implemented by the persistence provider.
    jakarta.persistence.spi.LoadState
    isLoaded(Object entity)
    If the provider determines that the entity has been provided by itself and that the state of all attributes for which FetchType.EAGER has been specified have been loaded, this method returns LoadState.LOADED.
    jakarta.persistence.spi.LoadState
    isLoadedWithoutReference(Object entity, String attributeName)
    If the provider determines that the entity has been provided by itself and that the state of the specified attribute has been loaded, this method returns LoadState.LOADED.
    jakarta.persistence.spi.LoadState
    isLoadedWithReference(Object entity, String attributeName)
    If the provider determines that the entity has been provided by itself and that the state of the specified attribute has been loaded, this method returns LoadState.LOADED.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PersistenceProvider

      public PersistenceProvider()
  • Method Details

    • createEntityManagerFactoryImpl

      protected org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl createEntityManagerFactoryImpl(jakarta.persistence.spi.PersistenceUnitInfo puInfo, Map properties, boolean requiresConnection)
      Internal method to return the entity manager factory.
    • createEntityManagerFactory

      public jakarta.persistence.EntityManagerFactory createEntityManagerFactory(String emName, Map properties)
      Called by Persistence class when an EntityManagerFactory is to be created.
      Specified by:
      createEntityManagerFactory in interface jakarta.persistence.spi.PersistenceProvider
      Parameters:
      emName - The name of the persistence unit
      properties - A Map of properties for use by the persistence provider. These properties may be used to override the values of the corresponding elements in the persistence.xml file or specify values for properties not specified in the persistence.xml.
      Returns:
      EntityManagerFactory for the persistence unit, or null if the provider is not the right provider
    • generateSchema

      public void generateSchema(jakarta.persistence.spi.PersistenceUnitInfo info, Map properties)
      Create database schemas and/or tables and/or create DDL scripts as determined by the supplied properties.

      Called by the Persistence class when schema generation is to occur as a separate phase from creation of the entity manager factory.

      Specified by:
      generateSchema in interface jakarta.persistence.spi.PersistenceProvider
      Parameters:
      info - the name of the persistence unit
      properties - properties for schema generation; these may also contain provider-specific properties. The value of these properties override any values that may have been configured elsewhere.
      Throws:
      jakarta.persistence.PersistenceException - if insufficient or inconsistent configuration information is provided of if schema generation otherwise fails
    • generateSchema

      public boolean generateSchema(String persistenceUnitName, Map properties)
      Create database schemas and/or tables and/or create DDL scripts as determined by the supplied properties.

      Called by the Persistence class when schema generation is to occur as a separate phase from creation of the entity manager factory.

      Specified by:
      generateSchema in interface jakarta.persistence.spi.PersistenceProvider
      Parameters:
      persistenceUnitName - the name of the persistence unit
      properties - properties for schema generation; these may also contain provider-specific properties. The value of these properties override any values that may have been configured elsewhere.
      Throws:
      jakarta.persistence.PersistenceException - if insufficient or inconsistent configuration information is provided of if schema generation otherwise fails
    • getInitializer

      public org.eclipse.persistence.internal.jpa.deployment.JPAInitializer getInitializer(String emName, Map m)
      Return JPAInitializer corresponding to the passed classLoader. Note: This is written as an instance method rather than a static to allow it to be overridden
      Parameters:
      emName -
      m -
      Returns:
    • checkForProviderProperty

      public boolean checkForProviderProperty(Map properties)
      Need to check that the provider property is null or set for EclipseLink
    • createContainerEntityManagerFactory

      public jakarta.persistence.EntityManagerFactory createContainerEntityManagerFactory(jakarta.persistence.spi.PersistenceUnitInfo info, Map properties)
      Called by the container when an EntityManagerFactory is to be created.
      Specified by:
      createContainerEntityManagerFactory in interface jakarta.persistence.spi.PersistenceProvider
      Parameters:
      info - Metadata for use by the persistence provider
      properties - A Map of integration-level properties for use by the persistence provider.
      Returns:
      EntityManagerFactory for the persistence unit specified by the metadata
    • createContainerEntityManagerFactoryImpl

      protected jakarta.persistence.EntityManagerFactory createContainerEntityManagerFactoryImpl(jakarta.persistence.spi.PersistenceUnitInfo info, Map properties, boolean requiresConnection)
    • getProviderUtil

      public jakarta.persistence.spi.ProviderUtil getProviderUtil()
      Return the utility interface implemented by the persistence provider.
      Specified by:
      getProviderUtil in interface jakarta.persistence.spi.PersistenceProvider
      Returns:
      ProviderUtil interface
    • isLoadedWithoutReference

      public jakarta.persistence.spi.LoadState isLoadedWithoutReference(Object entity, String attributeName)
      If the provider determines that the entity has been provided by itself and that the state of the specified attribute has been loaded, this method returns LoadState.LOADED. If the provider determines that the entity has been provided by itself and that either entity attributes with FetchType.EAGER have not been loaded or that the state of the specified attribute has not been loaded, this methods returns LoadState.NOT_LOADED. If a provider cannot determine the load state, this method returns LoadState.UNKNOWN. The provider's implementation of this method must not obtain a reference to an attribute value, as this could trigger the loading of entity state if the entity has been provided by a different provider.
      Specified by:
      isLoadedWithoutReference in interface jakarta.persistence.spi.ProviderUtil
      Parameters:
      entity -
      attributeName - name of attribute whose load status is to be determined
      Returns:
      load status of the attribute
    • isLoadedWithReference

      public jakarta.persistence.spi.LoadState isLoadedWithReference(Object entity, String attributeName)
      If the provider determines that the entity has been provided by itself and that the state of the specified attribute has been loaded, this method returns LoadState.LOADED. If a provider determines that the entity has been provided by itself and that either the entity attributes with FetchType.EAGER have not been loaded or that the state of the specified attribute has not been loaded, this method returns return LoadState.NOT_LOADED. If the provider cannot determine the load state, this method returns LoadState.UNKNOWN. The provider's implementation of this method is permitted to obtain a reference to the attribute value. (This access is safe because providers which might trigger the loading of the attribute state will have already been determined by isLoadedWithoutReference. )
      Specified by:
      isLoadedWithReference in interface jakarta.persistence.spi.ProviderUtil
      Parameters:
      entity -
      attributeName - name of attribute whose load status is to be determined
      Returns:
      load status of the attribute
    • isLoaded

      public jakarta.persistence.spi.LoadState isLoaded(Object entity)
      If the provider determines that the entity has been provided by itself and that the state of all attributes for which FetchType.EAGER has been specified have been loaded, this method returns LoadState.LOADED. If the provider determines that the entity has been provided by itself and that not all attributes with FetchType.EAGER have been loaded, this method returns LoadState.NOT_LOADED. If the provider cannot determine if the entity has been provided by itself, this method returns LoadState.UNKNOWN. The provider's implementation of this method must not obtain a reference to any attribute value, as this could trigger the loading of entity state if the entity has been provided by a different provider.
      Specified by:
      isLoaded in interface jakarta.persistence.spi.ProviderUtil
      Parameters:
      entity - whose loaded status is to be determined
      Returns:
      load status of the entity
    • getClassLoader

      public ClassLoader getClassLoader(String emName, Map properties)
      Answer the classloader to use to create an EntityManager. If a classloader is not found in the properties map then use the current thread classloader.
      Parameters:
      properties -
      Returns:
      ClassLoader