Package org.eclipse.persistence.jpa
Class PersistenceProvider
- java.lang.Object
-
- org.eclipse.persistence.jpa.PersistenceProvider
-
- All Implemented Interfaces:
javax.persistence.spi.PersistenceProvider
,javax.persistence.spi.ProviderUtil
public class PersistenceProvider extends java.lang.Object implements javax.persistence.spi.PersistenceProvider, javax.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 PersistenceProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
checkForProviderProperty(java.util.Map properties)
Need to check that the provider property is null or set for EclipseLinkjavax.persistence.EntityManagerFactory
createContainerEntityManagerFactory(javax.persistence.spi.PersistenceUnitInfo info, java.util.Map properties)
Called by the container when an EntityManagerFactory is to be created.javax.persistence.EntityManagerFactory
createEntityManagerFactory(java.lang.String emName, java.util.Map properties)
Called by Persistence class when an EntityManagerFactory is to be created.boolean
generateSchema(java.lang.String persistenceUnitName, java.util.Map properties)
Create database schemas and/or tables and/or create DDL scripts as determined by the supplied properties.void
generateSchema(javax.persistence.spi.PersistenceUnitInfo info, java.util.Map properties)
Create database schemas and/or tables and/or create DDL scripts as determined by the supplied properties.java.lang.ClassLoader
getClassLoader(java.lang.String emName, java.util.Map properties)
Answer the classloader to use to create an EntityManager.org.eclipse.persistence.internal.jpa.deployment.JPAInitializer
getInitializer(java.lang.String emName, java.util.Map m)
Return JPAInitializer corresponding to the passed classLoader.javax.persistence.spi.ProviderUtil
getProviderUtil()
Return the utility interface implemented by the persistence provider.javax.persistence.spi.LoadState
isLoaded(java.lang.Object entity)
If the provider determines that the entity has been provided by itself and that the state of all attributes for whichFetchType.EAGER
has been specified have been loaded, this method returnsLoadState.LOADED
.javax.persistence.spi.LoadState
isLoadedWithoutReference(java.lang.Object entity, java.lang.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 returnsLoadState.LOADED
.javax.persistence.spi.LoadState
isLoadedWithReference(java.lang.Object entity, java.lang.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 returnsLoadState.LOADED
.
-
-
-
Method Detail
-
createEntityManagerFactory
public javax.persistence.EntityManagerFactory createEntityManagerFactory(java.lang.String emName, java.util.Map properties)
Called by Persistence class when an EntityManagerFactory is to be created.- Specified by:
createEntityManagerFactory
in interfacejavax.persistence.spi.PersistenceProvider
- Parameters:
emName
- The name of the persistence unitproperties
- 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(javax.persistence.spi.PersistenceUnitInfo info, java.util.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 interfacejavax.persistence.spi.PersistenceProvider
- Parameters:
info
- the name of the persistence unitproperties
- 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:
javax.persistence.PersistenceException
- if insufficient or inconsistent configuration information is provided of if schema generation otherwise fails- Since:
- Java Persistence 2.1
-
generateSchema
public boolean generateSchema(java.lang.String persistenceUnitName, java.util.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 interfacejavax.persistence.spi.PersistenceProvider
- Parameters:
persistenceUnitName
- the name of the persistence unitproperties
- 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:
javax.persistence.PersistenceException
- if insufficient or inconsistent configuration information is provided of if schema generation otherwise fails- Since:
- Java Persistence 2.1
-
getInitializer
public org.eclipse.persistence.internal.jpa.deployment.JPAInitializer getInitializer(java.lang.String emName, java.util.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(java.util.Map properties)
Need to check that the provider property is null or set for EclipseLink
-
createContainerEntityManagerFactory
public javax.persistence.EntityManagerFactory createContainerEntityManagerFactory(javax.persistence.spi.PersistenceUnitInfo info, java.util.Map properties)
Called by the container when an EntityManagerFactory is to be created.- Specified by:
createContainerEntityManagerFactory
in interfacejavax.persistence.spi.PersistenceProvider
- Parameters:
info
- Metadata for use by the persistence providerproperties
- A Map of integration-level properties for use by the persistence provider.- Returns:
- EntityManagerFactory for the persistence unit specified by the metadata
-
getProviderUtil
public javax.persistence.spi.ProviderUtil getProviderUtil()
Return the utility interface implemented by the persistence provider.- Specified by:
getProviderUtil
in interfacejavax.persistence.spi.PersistenceProvider
- Returns:
- ProviderUtil interface
- Since:
- Java Persistence 2.0
-
isLoadedWithoutReference
public javax.persistence.spi.LoadState isLoadedWithoutReference(java.lang.Object entity, java.lang.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 returnsLoadState.LOADED
. If the provider determines that the entity has been provided by itself and that either entity attributes withFetchType.EAGER
have not been loaded or that the state of the specified attribute has not been loaded, this methods returnsLoadState.NOT_LOADED
. If a provider cannot determine the load state, this method returnsLoadState.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 interfacejavax.persistence.spi.ProviderUtil
- Parameters:
entity
-attributeName
- name of attribute whose load status is to be determined- Returns:
- load status of the attribute
-
isLoadedWithReference
public javax.persistence.spi.LoadState isLoadedWithReference(java.lang.Object entity, java.lang.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 returnsLoadState.LOADED
. If a provider determines that the entity has been provided by itself and that either the entity attributes withFetchType.EAGER
have not been loaded or that the state of the specified attribute has not been loaded, this method returns returnLoadState.NOT_LOADED
. If the provider cannot determine the load state, this method returnsLoadState.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 byisLoadedWithoutReference
. )- Specified by:
isLoadedWithReference
in interfacejavax.persistence.spi.ProviderUtil
- Parameters:
entity
-attributeName
- name of attribute whose load status is to be determined- Returns:
- load status of the attribute
-
isLoaded
public javax.persistence.spi.LoadState isLoaded(java.lang.Object entity)
If the provider determines that the entity has been provided by itself and that the state of all attributes for whichFetchType.EAGER
has been specified have been loaded, this method returnsLoadState.LOADED
. If the provider determines that the entity has been provided by itself and that not all attributes withFetchType.EAGER
have been loaded, this method returnsLoadState.NOT_LOADED
. If the provider cannot determine if the entity has been provided by itself, this method returnsLoadState.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 interfacejavax.persistence.spi.ProviderUtil
- Parameters:
entity
- whose loaded status is to be determined- Returns:
- load status of the entity
-
getClassLoader
public java.lang.ClassLoader getClassLoader(java.lang.String emName, java.util.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
-
-