org.springframework.orm.jpa.persistenceunit

## Interface SmartPersistenceUnitInfo

- All Superinterfaces:
    PersistenceUnitInfo
  All Known Implementing Classes:
    MutablePersistenceUnitInfo

      public interface SmartPersistenceUnitInfo
      extends PersistenceUnitInfo

  Extension of the standard JPA PersistenceUnitInfo interface, for advanced collaboration between Spring's `LocalContainerEntityManagerFactoryBean` and `PersistenceUnitManager` implementations.
  Since:
    3.0.1
  Author:
    Juergen Hoeller
  See Also:
    `PersistenceUnitManager`, `LocalContainerEntityManagerFactoryBean`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `List<String>` | `getManagedPackages()` Return a list of managed Java packages, to be introspected by the persistence provider.
    `void` | `setPersistenceProviderPackageName(String persistenceProviderPackageName)` Set the persistence provider's own package name, for exclusion from class transformation.

    - ### Methods inherited from interface javax.persistence.spi.PersistenceUnitInfo

      `addTransformer, excludeUnlistedClasses, getClassLoader, getJarFileUrls, getJtaDataSource, getManagedClassNames, getMappingFileNames, getNewTempClassLoader, getNonJtaDataSource, getPersistenceProviderClassName, getPersistenceUnitName, getPersistenceUnitRootUrl, getPersistenceXMLSchemaVersion, getProperties, getSharedCacheMode, getTransactionType, getValidationMode`

- - ### Method Detail

    - #### getManagedPackages

          List<String> getManagedPackages()

      Return a list of managed Java packages, to be introspected by the persistence provider. Typically found through scanning but not exposable through `PersistenceUnitInfo.getManagedClassNames()`.
      Returns:
        a list of names of managed Java packages (potentially empty)
      Since:
        4.1

    - #### setPersistenceProviderPackageName

          void setPersistenceProviderPackageName(String persistenceProviderPackageName)

      Set the persistence provider's own package name, for exclusion from class transformation.
      See Also:
        `PersistenceUnitInfo.addTransformer(javax.persistence.spi.ClassTransformer)`, `PersistenceUnitInfo.getNewTempClassLoader()`