# Hierarchy For All Packages

Package Hierarchies:

- org.springframework.orm,
- org.springframework.orm.hibernate5,
- org.springframework.orm.hibernate5.support,
- org.springframework.orm.jpa,
- org.springframework.orm.jpa.persistenceunit,
- org.springframework.orm.jpa.support,
- org.springframework.orm.jpa.vendor

## Class Hierarchy

- java.lang.Object
  - org.hibernate.context.spi.AbstractCurrentSessionContext (implements org.hibernate.context.spi.CurrentSessionContext)
    - org.hibernate.context.internal.JTASessionContext
      - org.springframework.orm.hibernate5.SpringJtaSessionContext
  - org.springframework.orm.jpa.AbstractEntityManagerFactoryBean (implements org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.orm.jpa.EntityManagerFactoryInfo, org.springframework.beans.factory.FactoryBean<T>, org.springframework.beans.factory.InitializingBean, org.springframework.dao.support.PersistenceExceptionTranslator, java.io.Serializable, org.springframework.beans.factory.SmartInitializingSingleton)
    - org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean (implements org.springframework.context.weaving.LoadTimeWeaverAware, org.springframework.context.ResourceLoaderAware)
    - org.springframework.orm.jpa.LocalEntityManagerFactoryBean
  - org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter (implements org.springframework.orm.jpa.JpaVendorAdapter)
    - org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter
    - org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter
  - org.springframework.transaction.support.AbstractPlatformTransactionManager (implements org.springframework.transaction.ConfigurableTransactionManager, org.springframework.transaction.PlatformTransactionManager, java.io.Serializable)
    - org.springframework.orm.hibernate5.HibernateTransactionManager (implements org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean, org.springframework.transaction.support.ResourceTransactionManager)
    - org.springframework.orm.jpa.JpaTransactionManager (implements org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean, org.springframework.transaction.support.ResourceTransactionManager)
  - org.hibernate.cfg.Configuration
    - org.springframework.orm.hibernate5.LocalSessionFactoryBuilder
  - org.springframework.dao.support.DaoSupport (implements org.springframework.beans.factory.InitializingBean)
    - org.springframework.orm.hibernate5.support.HibernateDaoSupport
  - org.springframework.orm.jpa.DefaultJpaDialect (implements org.springframework.orm.jpa.JpaDialect, java.io.Serializable)
    - org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect
    - org.springframework.orm.jpa.vendor.HibernateJpaDialect
  - org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager (implements org.springframework.beans.factory.InitializingBean, org.springframework.context.weaving.LoadTimeWeaverAware, org.springframework.orm.jpa.persistenceunit.PersistenceUnitManager, org.springframework.context.ResourceLoaderAware)
  - org.springframework.orm.jpa.EntityManagerFactoryAccessor (implements org.springframework.beans.factory.BeanFactoryAware)
    - org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor (implements org.springframework.web.context.request.AsyncWebRequestInterceptor)
    - org.springframework.orm.jpa.support.SharedEntityManagerBean (implements org.springframework.beans.factory.FactoryBean<T>, org.springframework.beans.factory.InitializingBean)
  - org.springframework.orm.jpa.EntityManagerFactoryUtils
  - org.springframework.orm.jpa.ExtendedEntityManagerCreator
  - org.springframework.web.filter.GenericFilterBean (implements org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.context.EnvironmentAware, org.springframework.core.env.EnvironmentCapable, jakarta.servlet.Filter, org.springframework.beans.factory.InitializingBean, org.springframework.web.context.ServletContextAware)
    - org.springframework.web.filter.OncePerRequestFilter
      - org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
      - org.springframework.orm.hibernate5.support.OpenSessionInViewFilter
  - org.springframework.orm.hibernate5.HibernateExceptionTranslator (implements org.springframework.dao.support.PersistenceExceptionTranslator)
    - org.springframework.orm.hibernate5.LocalSessionFactoryBean (implements org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.FactoryBean<T>, org.springframework.beans.factory.InitializingBean, org.springframework.context.ResourceLoaderAware, org.springframework.beans.factory.SmartInitializingSingleton)
  - org.springframework.orm.hibernate5.HibernateTemplate (implements org.springframework.orm.hibernate5.HibernateOperations, org.springframework.beans.factory.InitializingBean)
  - org.springframework.orm.jpa.persistenceunit.MutablePersistenceUnitInfo (implements org.springframework.orm.jpa.persistenceunit.SmartPersistenceUnitInfo)
  - org.springframework.orm.hibernate5.support.OpenSessionInterceptor (implements org.springframework.beans.factory.InitializingBean, org.aopalliance.intercept.MethodInterceptor)
  - org.springframework.orm.hibernate5.support.OpenSessionInViewInterceptor (implements org.springframework.web.context.request.AsyncWebRequestInterceptor)
  - org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor (implements org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.aot.BeanRegistrationAotProcessor, org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor, org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor, org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor, org.springframework.core.PriorityOrdered, java.io.Serializable)
  - org.springframework.orm.jpa.persistenceunit.PersistenceManagedTypesScanner
  - org.springframework.transaction.support.ResourceHolderSupport (implements org.springframework.transaction.support.ResourceHolder)
    - org.springframework.orm.jpa.EntityManagerHolder
      - org.springframework.orm.hibernate5.SessionHolder
  - org.springframework.orm.hibernate5.SessionFactoryUtils
  - org.springframework.orm.jpa.SharedEntityManagerCreator
  - org.springframework.orm.hibernate5.SpringBeanContainer (implements org.hibernate.resource.beans.container.spi.BeanContainer)
  - org.springframework.orm.hibernate5.SpringFlushSynchronization (implements org.springframework.transaction.support.TransactionSynchronization)
  - org.springframework.orm.hibernate5.SpringSessionContext (implements org.hibernate.context.spi.CurrentSessionContext)
  - org.springframework.orm.hibernate5.SpringSessionSynchronization (implements org.springframework.core.Ordered, org.springframework.transaction.support.TransactionSynchronization)
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - java.lang.RuntimeException
        - org.springframework.core.NestedRuntimeException
          - org.springframework.dao.DataAccessException
            - org.springframework.dao.NonTransientDataAccessException
              - org.springframework.dao.DataRetrievalFailureException
                - org.springframework.orm.ObjectRetrievalFailureException
                  - org.springframework.orm.hibernate5.HibernateObjectRetrievalFailureException
                  - org.springframework.orm.jpa.JpaObjectRetrievalFailureException
              - org.springframework.dao.InvalidDataAccessResourceUsageException
                - org.springframework.orm.hibernate5.HibernateQueryException
              - org.springframework.dao.UncategorizedDataAccessException
                - org.springframework.orm.hibernate5.HibernateJdbcException
                - org.springframework.orm.hibernate5.HibernateSystemException
                - org.springframework.orm.jpa.JpaSystemException
            - org.springframework.dao.TransientDataAccessException
              - org.springframework.dao.ConcurrencyFailureException
                - org.springframework.dao.OptimisticLockingFailureException
                  - org.springframework.orm.ObjectOptimisticLockingFailureException
                    - org.springframework.orm.hibernate5.HibernateOptimisticLockingFailureException
                    - org.springframework.orm.jpa.JpaOptimisticLockingFailureException

## Interface Hierarchy

- jakarta.persistence.EntityManager
  - org.springframework.orm.jpa.EntityManagerProxy
- org.springframework.orm.jpa.EntityManagerFactoryInfo
- org.springframework.orm.hibernate5.HibernateCallback<T>
- org.springframework.orm.hibernate5.HibernateOperations
- org.springframework.orm.jpa.JpaVendorAdapter
- org.springframework.orm.jpa.persistenceunit.ManagedClassNameFilter
- org.springframework.dao.support.PersistenceExceptionTranslator
  - org.springframework.orm.jpa.JpaDialect
- org.springframework.orm.jpa.persistenceunit.PersistenceManagedTypes
- jakarta.persistence.spi.PersistenceUnitInfo
  - org.springframework.orm.jpa.persistenceunit.SmartPersistenceUnitInfo
- org.springframework.orm.jpa.persistenceunit.PersistenceUnitManager
- org.springframework.orm.jpa.persistenceunit.PersistenceUnitPostProcessor

## Enum Class Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.lang.constant.Constable, java.io.Serializable)
    - org.springframework.orm.jpa.vendor.Database