org.springframework.orm.jpa.vendor

## Class HibernateJpaVendorAdapter

- java.lang.Object
- - org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter
  - - org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter

- All Implemented Interfaces:
    JpaVendorAdapter

      public class HibernateJpaVendorAdapter
      extends AbstractJpaVendorAdapter

  `JpaVendorAdapter` implementation for Hibernate EntityManager. Developed and tested against Hibernate 3.6 and 4.2/4.3.

  Exposes Hibernate's persistence provider and EntityManager extension interface, and supports `AbstractJpaVendorAdapter`'s common configuration settings.

  Note that the package location of Hibernate's JPA support changed from 4.2 to 4.3: from `org.hibernate.ejb.HibernateEntityManager(Factory)` to `org.hibernate.jpa.HibernateEntityManager(Factory)`. As of Spring 4.0, we're exposing the correct, non-deprecated variant depending on the Hibernate version encountered at runtime, in order to avoid deprecation log entries.

  Since:
    2.0
  Author:
    Juergen Hoeller, Rod Johnson

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `HibernateJpaVendorAdapter()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Class<?>` | `determineDatabaseDialectClass(Database database)` Determine the Hibernate database dialect class for the given target database.
    `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,Object>` | `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.

    - ### Methods inherited from class org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter

      `getDatabase, getDatabasePlatform, isGenerateDdl, isShowSql, postProcessEntityManagerFactory, setDatabase, setDatabasePlatform, setGenerateDdl, setShowSql`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### HibernateJpaVendorAdapter

          public HibernateJpaVendorAdapter()

  - ### Method Detail

    - #### getPersistenceProvider

          public PersistenceProvider getPersistenceProvider()

      Description copied from interface: `JpaVendorAdapter`
      Return the vendor-specific persistence provider.

    - #### getPersistenceProviderRootPackage

          public String getPersistenceProviderRootPackage()

      Description copied from interface: `JpaVendorAdapter`
      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.
      Specified by:
        `getPersistenceProviderRootPackage` in interface `JpaVendorAdapter`
      Overrides:
        `getPersistenceProviderRootPackage` in class `AbstractJpaVendorAdapter`

    - #### getJpaPropertyMap

          public Map<String,Object> getJpaPropertyMap()

      Description copied from interface: `JpaVendorAdapter`
      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.

      Specified by:
        `getJpaPropertyMap` in interface `JpaVendorAdapter`
      Overrides:
        `getJpaPropertyMap` in class `AbstractJpaVendorAdapter`
      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)`

    - #### determineDatabaseDialectClass

          protected Class<?> determineDatabaseDialectClass(Database database)

      Determine the Hibernate database dialect class for the given target database.
      Parameters:
        `database` - the target database
      Returns:
        the Hibernate database dialect class, or `null` if none found

    - #### getJpaDialect

          public JpaDialect getJpaDialect()

      Description copied from interface: `JpaVendorAdapter`
      Return the vendor-specific JpaDialect implementation for this provider, or `null` if there is none.
      Specified by:
        `getJpaDialect` in interface `JpaVendorAdapter`
      Overrides:
        `getJpaDialect` in class `AbstractJpaVendorAdapter`

    - #### getEntityManagerFactoryInterface

          public Class<? extends EntityManagerFactory> getEntityManagerFactoryInterface()

      Description copied from interface: `JpaVendorAdapter`
      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.

      Specified by:
        `getEntityManagerFactoryInterface` in interface `JpaVendorAdapter`
      Overrides:
        `getEntityManagerFactoryInterface` in class `AbstractJpaVendorAdapter`

    - #### getEntityManagerInterface

          public Class<? extends EntityManager> getEntityManagerInterface()

      Description copied from interface: `JpaVendorAdapter`
      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.

      Specified by:
        `getEntityManagerInterface` in interface `JpaVendorAdapter`
      Overrides:
        `getEntityManagerInterface` in class `AbstractJpaVendorAdapter`