org.springframework.orm.jpa

## Interface JpaVendorAdapter

- All Known Implementing Classes:
    AbstractJpaVendorAdapter, EclipseLinkJpaVendorAdapter, HibernateJpaVendorAdapter, OpenJpaVendorAdapter, TopLinkJpaVendorAdapter

      public interface JpaVendorAdapter

  SPI interface that allows to plug in vendor-specific behavior into Spring's EntityManagerFactory creators. Serves as single configuration point for all vendor-specific properties.
  Since:
    2.0
  Author:
    Juergen Hoeller, Rod Johnson
  See Also:
    `AbstractEntityManagerFactoryBean.setJpaVendorAdapter(org.springframework.orm.jpa.JpaVendorAdapter)`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Class<? extends EntityManagerFactory>` | `getEntityManagerFactoryInterface()` Return the vendor-specific EntityManagerFactory interface that the EntityManagerFactory proxy is supposed to implement.
    `Class<? extends EntityManager>` | `getEntityManagerInterface()` Return the vendor-specific EntityManager interface that this provider's EntityManagers will implement.
    `JpaDialect` | `getJpaDialect()` Return the vendor-specific JpaDialect implementation for this provider, or `null` if there is none.
    `Map<String,?>` | `getJpaPropertyMap()` Return a Map of vendor-specific JPA properties, typically based on settings in this JpaVendorAdapter instance.
    `PersistenceProvider` | `getPersistenceProvider()` Return the vendor-specific persistence provider.
    `String` | `getPersistenceProviderRootPackage()` Return the name of the persistence provider's root package (e.g.
    `void` | `postProcessEntityManagerFactory(EntityManagerFactory emf)` Optional callback for post-processing the native EntityManagerFactory before active use.

- - ### Method Detail

    - #### getPersistenceProvider

          PersistenceProvider getPersistenceProvider()

      Return the vendor-specific persistence provider.

    - #### getPersistenceProviderRootPackage

          String getPersistenceProviderRootPackage()

      Return the name of the persistence provider's root package (e.g. "oracle.toplink.essentials"). Will be used for excluding provider classes from temporary class overriding.
      Since:
        2.5.2

    - #### getJpaPropertyMap

          Map<String,?> getJpaPropertyMap()

      Return a Map of vendor-specific JPA properties, typically based on settings in this JpaVendorAdapter instance.

      Note that there might be further JPA properties defined on the EntityManagerFactory bean, which might potentially override individual JPA property values specified here.

      Returns:
        a Map of JPA properties, as as accepted by the standard JPA bootstrap facilities, or `null` or an empty Map if there are no such properties to expose
      See Also:
        `Persistence.createEntityManagerFactory(String, java.util.Map)`, `PersistenceProvider.createContainerEntityManagerFactory(javax.persistence.spi.PersistenceUnitInfo, java.util.Map)`

    - #### getJpaDialect

          JpaDialect getJpaDialect()

      Return the vendor-specific JpaDialect implementation for this provider, or `null` if there is none.

    - #### getEntityManagerFactoryInterface

          Class<? extends EntityManagerFactory> getEntityManagerFactoryInterface()

      Return the vendor-specific EntityManagerFactory interface that the EntityManagerFactory proxy is supposed to implement.

      If the provider does not offer any EntityManagerFactory extensions, the adapter should simply return the standard `EntityManagerFactory` class here.

      Since:
        2.5.2

    - #### getEntityManagerInterface

          Class<? extends EntityManager> getEntityManagerInterface()

      Return the vendor-specific EntityManager interface that this provider's EntityManagers will implement.

      If the provider does not offer any EntityManager extensions, the adapter should simply return the standard `EntityManager` class here.

    - #### postProcessEntityManagerFactory

          void postProcessEntityManagerFactory(EntityManagerFactory emf)

      Optional callback for post-processing the native EntityManagerFactory before active use.

      This can be used for triggering vendor-specific initialization processes. While this is not expected to be used for most providers, it is included here as a general extension hook.