Package org.springframework.orm.jpa

# Interface EntityManagerFactoryInfo

All Known Implementing Classes:
  `AbstractEntityManagerFactoryBean`, `LocalContainerEntityManagerFactoryBean`, `LocalEntityManagerFactoryBean`

public interface EntityManagerFactoryInfo
Metadata interface for a Spring-managed JPA `EntityManagerFactory`.

This facility can be obtained from Spring-managed EntityManagerFactory proxies through casting the EntityManagerFactory handle to this interface.

Since:
  2.0
Author:
  Rod Johnson, Juergen Hoeller

## Method Summary

Modifier and Type
Method
Description
`EntityManager`
`createNativeEntityManager(Map<?,?> properties)`
Create a native JPA EntityManager to be used as the framework-managed resource behind an application-level EntityManager handle.
`ClassLoader`
`getBeanClassLoader()`
Return the ClassLoader that the application's beans are loaded with.
`DataSource`
`getDataSource()`
Return the JDBC DataSource that this EntityManagerFactory obtains its JDBC Connections from.
`Class<? extends EntityManager>`
`getEntityManagerInterface()`
Return the (potentially vendor-specific) EntityManager interface that this factory's EntityManagers will implement.
`JpaDialect`
`getJpaDialect()`
Return the vendor-specific JpaDialect implementation for this EntityManagerFactory, or `null` if not known.
`EntityManagerFactory`
`getNativeEntityManagerFactory()`
Return the raw underlying EntityManagerFactory.
`PersistenceProvider`
`getPersistenceProvider()`
Return the underlying PersistenceProvider that the underlying EntityManagerFactory was created with.
`PersistenceUnitInfo`
`getPersistenceUnitInfo()`
Return the PersistenceUnitInfo used to create this EntityManagerFactory, if the in-container API was used.
`String`
`getPersistenceUnitName()`
Return the name of the persistence unit used to create this EntityManagerFactory, or `null` if it is an unnamed default.

## Method Details

### getPersistenceProvider

@Nullable PersistenceProvider getPersistenceProvider()
Return the underlying PersistenceProvider that the underlying EntityManagerFactory was created with.

Returns:
  the PersistenceProvider used to create this EntityManagerFactory, or `null` if the standard JPA provider autodetection process was used to configure the EntityManagerFactory

### getPersistenceUnitInfo

@Nullable PersistenceUnitInfo getPersistenceUnitInfo()
Return the PersistenceUnitInfo used to create this EntityManagerFactory, if the in-container API was used.

Returns:
  the PersistenceUnitInfo used to create this EntityManagerFactory, or `null` if the in-container contract was not used to configure the EntityManagerFactory

### getPersistenceUnitName

@Nullable String getPersistenceUnitName()
Return the name of the persistence unit used to create this EntityManagerFactory, or `null` if it is an unnamed default.

If `getPersistenceUnitInfo()` returns non-null, the result of `getPersistenceUnitName()` must be equal to the value returned by `PersistenceUnitInfo.getPersistenceUnitName()`.

See Also:
  - `getPersistenceUnitInfo()`
  - `PersistenceUnitInfo.getPersistenceUnitName()`

### getDataSource

@Nullable DataSource getDataSource()
Return the JDBC DataSource that this EntityManagerFactory obtains its JDBC Connections from.

Returns:
  the JDBC DataSource, or `null` if not known

### getEntityManagerInterface

@Nullable Class<? extends EntityManager> getEntityManagerInterface()
Return the (potentially vendor-specific) EntityManager interface that this factory's EntityManagers will implement.

A `null` return value suggests that autodetection is supposed to happen: either based on a target `EntityManager` instance or simply defaulting to `jakarta.persistence.EntityManager`.

### getJpaDialect

@Nullable JpaDialect getJpaDialect()
Return the vendor-specific JpaDialect implementation for this EntityManagerFactory, or `null` if not known.

### getBeanClassLoader

ClassLoader getBeanClassLoader()
Return the ClassLoader that the application's beans are loaded with.

Proxies will be generated in this ClassLoader.

### getNativeEntityManagerFactory

EntityManagerFactory getNativeEntityManagerFactory()
Return the raw underlying EntityManagerFactory.

Returns:
  the unadorned EntityManagerFactory (never `null`)

### createNativeEntityManager

EntityManager createNativeEntityManager(@Nullable Map<?,?> properties)
Create a native JPA EntityManager to be used as the framework-managed resource behind an application-level EntityManager handle.

This exposes a native `EntityManager` from the underlying `native EntityManagerFactory`, taking `JpaVendorAdapter.postProcessEntityManager(EntityManager)` into account.

Since:
  5.3
See Also:
  - `getNativeEntityManagerFactory()`
  - `EntityManagerFactory.createEntityManager()`