java.lang.Object
org.eclipse.persistence.jpa.JpaHelper
This sample illustrates the JPA helper methods that may be of use
to EclipseLink customers attempting to leverage EclipseLink specific functionality.
-
Method Summary
Modifier and TypeMethodDescriptionstatic EntityManagerFactory
createEntityManagerFactory
(String sessionName) Create a EclipseLink EMF using a session name and sessions.xml.static EntityManagerFactory
createEntityManagerFactory
(Server session) Create a EclipseLink EMF given a ServerSession that has already been created and logged in.static Query
createQuery
(DatabaseQuery query, EntityManager em) Create a EclipseLink JPA query dynamically given a EclipseLink query.static DatabaseQuery
getDatabaseQuery
(Query query) Access the internal EclipseLink query wrapped within the JPA query.static DatabaseSession
Retrieve the shared database session from the EMF.static JpaEntityManager
getEntityManager
(EntityManager entityManager) Convert a JPA entityManager into a EclipseLink specific one.static JpaEntityManagerFactory
Given an EntityManager return the EntityManagerFactory that created it.static JpaEntityManagerFactory
Given a JPA EntityManagerFactory attempt to cast it to a EclipseLink EMF.static EntityManagerFactoryImpl
Deprecated.static ReadAllQuery
getReadAllQuery
(Query query) Access the internal EclipseLink query wrapped within the JPA query.static ReportQuery
getReportQuery
(Query query) Access the internal EclipseLink query wrapped within the JPA query.static Server
Retrieve the shared server session from the EMF.static SessionBroker
Retrieve the shared session broker from the EMF.static boolean
Verify if the JPA provider is EclipseLink.static boolean
Verify if the JPA provider is EclipseLinkstatic boolean
isEclipseLink
(Query query) Verify if the JPA provider is EclipseLinkstatic boolean
isReportQuery
(Query query) Determine if the JPA query is a EclipseLink ReportQuery.static void
loadUnfetchedObject
(FetchGroupTracker entity) If the object has a fetch group then the whole object is read in.
-
Method Details
-
isEclipseLink
Verify if the JPA provider is EclipseLink. If you are in a container and not in a transaction this method may incorrectly return false. It is always more reliable to check isEclipseLink on the EMF or Query. -
isEclipseLink
Verify if the JPA provider is EclipseLink -
isEclipseLink
Verify if the JPA provider is EclipseLink -
isReportQuery
Determine if the JPA query is a EclipseLink ReportQuery. Useful for frameworks that want to determine which get_X_Query method they can safely invoke. -
getReportQuery
Access the internal EclipseLink query wrapped within the JPA query. A EclipseLink JPA created from JP QL contains a ReportQuery if multiple items or a non-entity type is being returned. This method will fail if a single entity type is being returned as the query is a ReadAllQuery.- See Also:
-
getDatabaseQuery
Access the internal EclipseLink query wrapped within the JPA query. -
getReadAllQuery
Access the internal EclipseLink query wrapped within the JPA query. A EclipseLink JPA created from JP QL only contains a ReadAllQuery if only a single entity type is being returned. A ReadAllQuery is the super class of a ReportQuery so this method will always work for either a ReportQuery or ReadAllQuery. -
createQuery
Create a EclipseLink JPA query dynamically given a EclipseLink query. -
getEntityManager
Convert a JPA entityManager into a EclipseLink specific one. This will work both within a JavaSE deployment as well as within a container where the EntityManager may be wrapped. In the case where the container is not in a transaction it may return null for its delegate. When this happens the only way to access an EntityManager is to use the EntityManagerFactory to create a temporary one where the application manage its lifecycle. -
getEntityManagerFactory
@Deprecated public static EntityManagerFactoryImpl getEntityManagerFactory(EntityManagerFactoryImpl emf) Deprecated.Given a JPA EntityManagerFactory attempt to cast it to a EclipseLink EMF. Although this method currently returns an instance of EntityManagerFactoryImpl, it is recommended that users cast to JpaEntityManagerFactory. Future versions of EclipseLink will return that interface from this method instead- See Also:
-
getEntityManagerFactory
Given a JPA EntityManagerFactory attempt to cast it to a EclipseLink EMF.- See Also:
-
getEntityManagerFactory
Given an EntityManager return the EntityManagerFactory that created it. This method must be called on an open entity manager and will return null if called on a closed entityManager. This method will return null for non-EclipseLink EntityManagers.- See Also:
-
getDatabaseSession
Retrieve the shared database session from the EMF. -
getServerSession
Retrieve the shared server session from the EMF. -
getSessionBroker
Retrieve the shared session broker from the EMF. -
createEntityManagerFactory
Create a EclipseLink EMF given a ServerSession that has already been created and logged in. -
createEntityManagerFactory
Create a EclipseLink EMF using a session name and sessions.xml. This is equivalent to using the EclipseLink.session-xml and EclipseLink.session-name PU properties with the exception that no persistence.xml is required. The application would be required to manage this singleton EMF. -
loadUnfetchedObject
If the object has a fetch group then the whole object is read in.
-