Top Description Fields Constructors Methods
org.springframework.orm.jpa

public Class LocalContainerEntityManagerFactoryBean

extends AbstractEntityManagerFactoryBean
implements ResourceLoaderAware, LoadTimeWeaverAware
Class Inheritance
All Implemented Interfaces
org.springframework.context.weaving.LoadTimeWeaverAware, org.springframework.beans.factory.Aware, org.springframework.context.ResourceLoaderAware
Annotations
@SuppressWarnings:serial
Imports
javax.sql.DataSource, jakarta.persistence.EntityManagerFactory, .PersistenceException, .SharedCacheMode, .ValidationMode, jakarta.persistence.spi.PersistenceProvider, .PersistenceUnitInfo, org.springframework.beans.BeanUtils, org.springframework.context.ResourceLoaderAware, org.springframework.context.weaving.LoadTimeWeaverAware, org.springframework.core.io.ResourceLoader, org.springframework.instrument.classloading.LoadTimeWeaver, org.springframework.jdbc.datasource.lookup.SingleDataSourceLookup, org.springframework.lang.Nullable, org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager, .ManagedClassNameFilter, .PersistenceManagedTypes, .PersistenceUnitManager, .PersistenceUnitPostProcessor, .SmartPersistenceUnitInfo, org.springframework.util.Assert, .ClassUtils

org.springframework.beans.factory.FactoryBean that creates a JPA jakarta.persistence.EntityManagerFactory according to JPA's standard container bootstrap contract. This is the most powerful way to set up a shared JPA EntityManagerFactory in a Spring application context; the EntityManagerFactory can then be passed to JPA-based DAOs via dependency injection. Note that switching to a JNDI lookup or to a LocalEntityManagerFactoryBean definition is just a matter of configuration!

As with LocalEntityManagerFactoryBean, configuration settings are usually read in from a META-INF/persistence.xml config file, residing in the class path, according to the general JPA configuration contract. However, this FactoryBean is more flexible in that you can override the location of the persistence.xml file, specify the JDBC DataSources to link to, etc. Furthermore, it allows for pluggable class instrumentation through Spring's org.springframework.instrument.classloading.LoadTimeWeaver abstraction, instead of being tied to a special VM agent specified on JVM startup.

Internally, this FactoryBean parses the persistence.xml file itself and creates a corresponding jakarta.persistence.spi.PersistenceUnitInfo object (with further configuration merged in, such as JDBC DataSources and the Spring LoadTimeWeaver), to be passed to the chosen JPA jakarta.persistence.spi.PersistenceProvider. This corresponds to a local JPA container with full support for the standard JPA container contract.

The exposed EntityManagerFactory object will implement all the interfaces of the underlying native EntityManagerFactory returned by the PersistenceProvider, plus the EntityManagerFactoryInfo interface which exposes additional metadata as assembled by this FactoryBean.

Authors
Juergen Hoeller, Rod Johnson
Since
2.0
See Also
setPersistenceXmlLocation, setJpaProperties, setJpaVendorAdapter, setLoadTimeWeaver, setDataSource, EntityManagerFactoryInfo, LocalEntityManagerFactoryBean, org.springframework.orm.jpa.support.SharedEntityManagerBean, jakarta.persistence.spi.PersistenceProvider#createContainerEntityManagerFactory

Field Summary

Modifier and TypeField and Description
private final DefaultPersistenceUnitManager
private PersistenceUnitInfo
private PersistenceUnitManager
Inherited from org.springframework.orm.jpa.AbstractEntityManagerFactoryBean:
logger

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
afterPropertiesSet()

Overrides org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet.

Implements org.springframework.beans.factory.InitializingBean.afterPropertiesSet.

Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, ApplicationContextAware etc.

This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.

protected EntityManagerFactory
createNativeEntityManagerFactory()

Implements abstract org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.createNativeEntityManagerFactory.

Subclasses must implement this method to create the EntityManagerFactory that will be returned by the getObject() method.

protected PersistenceUnitInfo

Returns:

the chosen PersistenceUnitInfo
determinePersistenceUnitInfo
(PersistenceUnitManager
the PersistenceUnitManager to obtain from
persistenceUnitManager
)

Determine the PersistenceUnitInfo to use for the EntityManagerFactory created by this bean.

public DataSource
getDataSource()

Overrides org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getDataSource.

Implements org.springframework.orm.jpa.EntityManagerFactoryInfo.getDataSource.

Return the JDBC DataSource that this EntityManagerFactory obtains its JDBC Connections from.

public PersistenceUnitInfo
getPersistenceUnitInfo()

Overrides org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getPersistenceUnitInfo.

Implements org.springframework.orm.jpa.EntityManagerFactoryInfo.getPersistenceUnitInfo.

Return the PersistenceUnitInfo used to create this EntityManagerFactory, if the in-container API was used.

public String
getPersistenceUnitName()

Overrides org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getPersistenceUnitName.

Implements org.springframework.orm.jpa.EntityManagerFactoryInfo.getPersistenceUnitName.

Return the name of the persistence unit used to create this EntityManagerFactory, or null if it is an unnamed default.

protected void
postProcessEntityManagerFactory(EntityManagerFactory
the newly created EntityManagerFactory we are working with
emf
,
PersistenceUnitInfo
the PersistenceUnitInfo used to configure the EntityManagerFactory
pui
)

Hook method allowing subclasses to customize the EntityManagerFactory after its creation via the PersistenceProvider.

public void
setDataSource(DataSource dataSource)

Specify the JDBC DataSource that the JPA persistence provider is supposed to use for accessing the database.

public void
setJtaDataSource(DataSource jtaDataSource)

Specify the JDBC DataSource that the JPA persistence provider is supposed to use for accessing the database.

public void
setLoadTimeWeaver(LoadTimeWeaver
the LoadTimeWeaver instance (never null)
loadTimeWeaver
)

Implements org.springframework.context.weaving.LoadTimeWeaverAware.setLoadTimeWeaver.

Specify the Spring LoadTimeWeaver to use for class instrumentation according to the JPA class transformer contract.

public void
setManagedClassNameFilter(ManagedClassNameFilter
a predicate to filter entity classes
managedClassNameFilter
)

Set the ManagedClassNameFilter to apply on entity classes discovered using classpath scanning.

public void
setManagedTypes(PersistenceManagedTypes
the managed types
managedTypes
)

Set the PersistenceManagedTypes to use to build the list of managed types as an alternative to entity scanning.

public void
setMappingResources(String... mappingResources)

Specify one or more mapping resources (equivalent to <mapping-file> entries in persistence.xml) for the default persistence unit.

public void
setPackagesToScan(String...
one or more base packages to search, analogous to Spring's component-scan configuration for regular Spring components
packagesToScan
)

Set whether to use Spring-based scanning for entity classes in the classpath instead of using JPA's standard scanning of jar files with persistence.xml markers in them.

public void
setPersistenceUnitManager(PersistenceUnitManager persistenceUnitManager)

Set the PersistenceUnitManager to use for obtaining the JPA persistence unit that this FactoryBean is supposed to build an EntityManagerFactory for.

public void
setPersistenceUnitName(String persistenceUnitName)

Overrides org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.setPersistenceUnitName.

Uses the specified persistence unit name as the name of the default persistence unit, if applicable.

public void
setPersistenceUnitPostProcessors(PersistenceUnitPostProcessor... postProcessors)

Set the PersistenceUnitPostProcessors to be applied to the PersistenceUnitInfo used for creating this EntityManagerFactory.

public void
setPersistenceUnitRootLocation(String defaultPersistenceUnitRootLocation)

Set a persistence unit root location for the default persistence unit.

public void
setPersistenceXmlLocation(String
a Spring resource String identifying the location of the persistence.xml file that this LocalContainerEntityManagerFactoryBean should parse
persistenceXmlLocation
)

Set the location of the persistence.xml file we want to use.

public void
setResourceLoader(ResourceLoader
the ResourceLoader object to be used by this object
resourceLoader
)

Implements org.springframework.context.ResourceLoaderAware.setResourceLoader.

Set the ResourceLoader that this object runs in.

This might be a ResourcePatternResolver, which can be checked through instanceof ResourcePatternResolver.

public void
setSharedCacheMode(SharedCacheMode sharedCacheMode)

Specify the JPA 2.0 shared cache mode for this persistence unit, overriding a value in persistence.xml if set.

public void
setValidationMode(ValidationMode validationMode)

Specify the JPA 2.0 validation mode for this persistence unit, overriding a value in persistence.xml if set.

Inherited from org.springframework.orm.jpa.AbstractEntityManagerFactoryBean:
createEntityManagerFactoryProxycreateNativeEntityManagerdestroygetBeanClassLoadergetBootstrapExecutorgetEntityManagerInterfacegetJpaDialectgetJpaPropertyMapgetJpaVendorAdaptergetNativeEntityManagerFactorygetObjectgetObjectTypegetPersistenceProviderinvokeProxyMethodisSingletonpostProcessEntityManagersetBeanClassLoadersetBeanFactorysetBeanNamesetBootstrapExecutorsetEntityManagerFactoryInterfacesetEntityManagerInitializersetEntityManagerInterfacesetJpaDialectsetJpaPropertiessetJpaPropertyMapsetJpaVendorAdaptersetPersistenceProvidersetPersistenceProviderClasstranslateExceptionIfPossiblewriteReplace

Field Detail

internalPersistenceUnitManagerback to summary
private final DefaultPersistenceUnitManager internalPersistenceUnitManager
persistenceUnitInfoback to summary
private PersistenceUnitInfo persistenceUnitInfo
Annotations
@Nullable
persistenceUnitManagerback to summary
private PersistenceUnitManager persistenceUnitManager
Annotations
@Nullable

Constructor Detail

LocalContainerEntityManagerFactoryBeanback to summary
public LocalContainerEntityManagerFactoryBean()

Method Detail

afterPropertiesSetback to summary
public void afterPropertiesSet() throws PersistenceException

Overrides org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet.

Implements org.springframework.beans.factory.InitializingBean.afterPropertiesSet.

Doc from org.springframework.beans.factory.InitializingBean.afterPropertiesSet.

Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, ApplicationContextAware etc.

This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.

Annotations
@Override
createNativeEntityManagerFactoryback to summary
protected EntityManagerFactory createNativeEntityManagerFactory() throws PersistenceException

Implements abstract org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.createNativeEntityManagerFactory.

Doc from org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.createNativeEntityManagerFactory.

Subclasses must implement this method to create the EntityManagerFactory that will be returned by the getObject() method.

Returns:EntityManagerFactory

the EntityManagerFactory instance returned by this FactoryBean

Annotations
@Override
Exceptions
PersistenceException:
if the EntityManager cannot be created
determinePersistenceUnitInfoback to summary
protected PersistenceUnitInfo determinePersistenceUnitInfo(PersistenceUnitManager persistenceUnitManager)

Determine the PersistenceUnitInfo to use for the EntityManagerFactory created by this bean.

The default implementation reads in all persistence unit infos from persistence.xml, as defined in the JPA specification. If no entity manager name was specified, it takes the first info in the array as returned by the reader. Otherwise, it checks for a matching name.

Parameters
persistenceUnitManager:PersistenceUnitManager

the PersistenceUnitManager to obtain from

Returns:PersistenceUnitInfo

the chosen PersistenceUnitInfo

getDataSourceback to summary
public DataSource getDataSource()

Overrides org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getDataSource.

Implements org.springframework.orm.jpa.EntityManagerFactoryInfo.getDataSource.

Doc from org.springframework.orm.jpa.EntityManagerFactoryInfo.getDataSource.

Return the JDBC DataSource that this EntityManagerFactory obtains its JDBC Connections from.

Returns:DataSource

the JDBC DataSource, or null if not known

Annotations
@Override
getPersistenceUnitInfoback to summary
public PersistenceUnitInfo getPersistenceUnitInfo()

Overrides org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getPersistenceUnitInfo.

Implements org.springframework.orm.jpa.EntityManagerFactoryInfo.getPersistenceUnitInfo.

Doc from org.springframework.orm.jpa.EntityManagerFactoryInfo.getPersistenceUnitInfo.

Return the PersistenceUnitInfo used to create this EntityManagerFactory, if the in-container API was used.

Returns:PersistenceUnitInfo

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

Annotations
@Override
@Nullable
getPersistenceUnitNameback to summary
public String getPersistenceUnitName()

Overrides org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.getPersistenceUnitName.

Implements org.springframework.orm.jpa.EntityManagerFactoryInfo.getPersistenceUnitName.

Doc from org.springframework.orm.jpa.EntityManagerFactoryInfo.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().

Annotations
@Override
@Nullable
postProcessEntityManagerFactoryback to summary
protected void postProcessEntityManagerFactory(EntityManagerFactory emf, PersistenceUnitInfo pui)

Hook method allowing subclasses to customize the EntityManagerFactory after its creation via the PersistenceProvider.

The default implementation is empty.

Parameters
emf:EntityManagerFactory

the newly created EntityManagerFactory we are working with

pui:PersistenceUnitInfo

the PersistenceUnitInfo used to configure the EntityManagerFactory

See Also
jakarta.persistence.spi.PersistenceProvider#createContainerEntityManagerFactory
setDataSourceback to summary
public void setDataSource(DataSource dataSource)

Specify the JDBC DataSource that the JPA persistence provider is supposed to use for accessing the database. This is an alternative to keeping the JDBC configuration in persistence.xml, passing in a Spring-managed DataSource instead.

In JPA speak, a DataSource passed in here will be used as "nonJtaDataSource" on the PersistenceUnitInfo passed to the PersistenceProvider, as well as overriding data source configuration in persistence.xml (if any). Note that this variant typically works for JTA transaction management as well; if it does not, consider using the explicit setJtaDataSource instead.

Note

Only applied if no external PersistenceUnitManager specified.

See Also
jakarta.persistence.spi.PersistenceUnitInfo#getNonJtaDataSource(), setPersistenceUnitManager
setJtaDataSourceback to summary
public void setJtaDataSource(DataSource jtaDataSource)

Specify the JDBC DataSource that the JPA persistence provider is supposed to use for accessing the database. This is an alternative to keeping the JDBC configuration in persistence.xml, passing in a Spring-managed DataSource instead.

In JPA speak, a DataSource passed in here will be used as "jtaDataSource" on the PersistenceUnitInfo passed to the PersistenceProvider, as well as overriding data source configuration in persistence.xml (if any).

Note

Only applied if no external PersistenceUnitManager specified.

See Also
jakarta.persistence.spi.PersistenceUnitInfo#getJtaDataSource(), setPersistenceUnitManager
setLoadTimeWeaverback to summary
public void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver)

Implements org.springframework.context.weaving.LoadTimeWeaverAware.setLoadTimeWeaver.

Specify the Spring LoadTimeWeaver to use for class instrumentation according to the JPA class transformer contract.

It is a not required to specify a LoadTimeWeaver: Most providers will be able to provide a subset of their functionality without class instrumentation as well, or operate with their VM agent specified on JVM startup.

In terms of Spring-provided weaving options, the most important ones are InstrumentationLoadTimeWeaver, which requires a Spring-specific (but very general) VM agent specified on JVM startup, and ReflectiveLoadTimeWeaver, which interacts with an underlying ClassLoader based on specific extended methods being available on it.

Note

As of Spring 2.5, the context's default LoadTimeWeaver (defined as bean with name "loadTimeWeaver") will be picked up automatically, if available, removing the need for LoadTimeWeaver configuration on each affected target bean. Consider using the context:load-time-weaver XML tag for creating such a shared LoadTimeWeaver (autodetecting the environment by default).

Note

Only applied if no external PersistenceUnitManager specified. Otherwise, the external PersistenceUnitManager is responsible for the weaving configuration.

Parameters
loadTimeWeaver:LoadTimeWeaver

Doc from org.springframework.context.weaving.LoadTimeWeaverAware.setLoadTimeWeaver.

the LoadTimeWeaver instance (never null)

Annotations
@Override
See Also
org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver, org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver
setManagedClassNameFilterback to summary
public void setManagedClassNameFilter(ManagedClassNameFilter managedClassNameFilter)

Set the ManagedClassNameFilter to apply on entity classes discovered using classpath scanning.

Parameters
managedClassNameFilter:ManagedClassNameFilter

a predicate to filter entity classes

Since
6.1.4
See Also
DefaultPersistenceUnitManager#setManagedClassNameFilter
setManagedTypesback to summary
public void setManagedTypes(PersistenceManagedTypes managedTypes)

Set the PersistenceManagedTypes to use to build the list of managed types as an alternative to entity scanning.

Parameters
managedTypes:PersistenceManagedTypes

the managed types

Since
6.0
See Also
DefaultPersistenceUnitManager#setManagedTypes(PersistenceManagedTypes)
setMappingResourcesback to summary
public void setMappingResources(String... mappingResources)

Specify one or more mapping resources (equivalent to <mapping-file> entries in persistence.xml) for the default persistence unit. Can be used on its own or in combination with entity scanning in the classpath, in both cases avoiding persistence.xml.

Note that mapping resources must be relative to the classpath root, e.g. "META-INF/mappings.xml" or "com/mycompany/repository/mappings.xml", so that they can be loaded through ClassLoader.getResource.

If no explicit mapping resources have been specified next to packages to scan, Spring's setup looks for a default META-INF/orm.xml file in the classpath, registering it as a mapping resource for the default unit if the mapping file is not co-located with a persistence.xml file (in which case we assume it is only meant to be used with the persistence units defined there, like in standard JPA).

Note that specifying an empty array/list here suppresses the default META-INF/orm.xml check. On the other hand, explicitly specifying META-INF/orm.xml here will register that file even if it happens to be co-located with a persistence.xml file.

Note

Only applied if no external PersistenceUnitManager specified.

See Also
setPersistenceUnitManager, DefaultPersistenceUnitManager#setMappingResources
setPackagesToScanback to summary
public void setPackagesToScan(String... packagesToScan)

Set whether to use Spring-based scanning for entity classes in the classpath instead of using JPA's standard scanning of jar files with persistence.xml markers in them. In case of Spring-based scanning, no persistence.xml is necessary; all you need to do is to specify base packages to search here.

Default is none. Specify packages to search for autodetection of your entity classes in the classpath. This is analogous to Spring's component-scan feature (org.springframework.context.annotation.ClassPathBeanDefinitionScanner).

Consider setting a PersistenceManagedTypes instead that allows the scanning logic to be optimized by AOT processing.

Note

There may be limitations in comparison to regular JPA scanning. In particular, JPA providers may pick up annotated packages for provider-specific annotations only when driven by persistence.xml. As of 4.1, Spring's scan can detect annotated packages as well if supported by the given JpaVendorAdapter (e.g. for Hibernate).

If no explicit mapping resources have been specified in addition to these packages, Spring's setup looks for a default META-INF/orm.xml file in the classpath, registering it as a mapping resource for the default unit if the mapping file is not co-located with a persistence.xml file (in which case we assume it is only meant to be used with the persistence units defined there, like in standard JPA).

NOTE: Only applied if no external PersistenceUnitManager specified.

Parameters
packagesToScan:String[]

one or more base packages to search, analogous to Spring's component-scan configuration for regular Spring components

See Also
setPersistenceUnitManager, DefaultPersistenceUnitManager#setPackagesToScan
setPersistenceUnitManagerback to summary
public void setPersistenceUnitManager(PersistenceUnitManager persistenceUnitManager)

Set the PersistenceUnitManager to use for obtaining the JPA persistence unit that this FactoryBean is supposed to build an EntityManagerFactory for.

The default is to rely on the local settings specified on this FactoryBean, such as "persistenceXmlLocation", "dataSource" and "loadTimeWeaver".

For reuse of existing persistence unit configuration or more advanced forms of custom persistence unit handling, consider defining a separate PersistenceUnitManager bean (typically a DefaultPersistenceUnitManager instance) and linking it in here. persistence.xml location, DataSource configuration and LoadTimeWeaver will be defined on that separate DefaultPersistenceUnitManager bean in such a scenario.

See Also
setPersistenceXmlLocation, setDataSource, setLoadTimeWeaver, org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager
setPersistenceUnitNameback to summary
public void setPersistenceUnitName(String persistenceUnitName)

Overrides org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.setPersistenceUnitName.

Uses the specified persistence unit name as the name of the default persistence unit, if applicable.

Note

Only applied if no external PersistenceUnitManager specified.

Annotations
@Override
See Also
DefaultPersistenceUnitManager#setDefaultPersistenceUnitName
setPersistenceUnitPostProcessorsback to summary
public void setPersistenceUnitPostProcessors(PersistenceUnitPostProcessor... postProcessors)

Set the PersistenceUnitPostProcessors to be applied to the PersistenceUnitInfo used for creating this EntityManagerFactory.

Such post-processors can, for example, register further entity classes and jar files, in addition to the metadata read from persistence.xml.

Note

Only applied if no external PersistenceUnitManager specified.

See Also
setPersistenceUnitManager
setPersistenceUnitRootLocationback to summary
public void setPersistenceUnitRootLocation(String defaultPersistenceUnitRootLocation)

Set a persistence unit root location for the default persistence unit.

Default is "classpath:", that is, the root of the current classpath (nearest root directory). To be overridden if unit-specific resolution does not work and the classpath root is not appropriate either.

Note

Only applied if no external PersistenceUnitManager specified.

Since
4.3.3
See Also
DefaultPersistenceUnitManager#setDefaultPersistenceUnitRootLocation
setPersistenceXmlLocationback to summary
public void setPersistenceXmlLocation(String persistenceXmlLocation)

Set the location of the persistence.xml file we want to use. This is a Spring resource location.

Default is "classpath:META-INF/persistence.xml".

Note

Only applied if no external PersistenceUnitManager specified.

Parameters
persistenceXmlLocation:String

a Spring resource String identifying the location of the persistence.xml file that this LocalContainerEntityManagerFactoryBean should parse

See Also
setPersistenceUnitManager
setResourceLoaderback to summary
public void setResourceLoader(ResourceLoader resourceLoader)

Implements org.springframework.context.ResourceLoaderAware.setResourceLoader.

Doc from org.springframework.context.ResourceLoaderAware.setResourceLoader.

Set the ResourceLoader that this object runs in.

This might be a ResourcePatternResolver, which can be checked through instanceof ResourcePatternResolver. See also the ResourcePatternUtils.getResourcePatternResolver method.

Invoked after population of normal bean properties but before an init callback like InitializingBean's afterPropertiesSet or a custom init-method. Invoked before ApplicationContextAware's setApplicationContext.

Parameters
resourceLoader:ResourceLoader

the ResourceLoader object to be used by this object

Annotations
@Override
setSharedCacheModeback to summary
public void setSharedCacheMode(SharedCacheMode sharedCacheMode)

Specify the JPA 2.0 shared cache mode for this persistence unit, overriding a value in persistence.xml if set.

Note

Only applied if no external PersistenceUnitManager specified.

Since
4.0
See Also
jakarta.persistence.spi.PersistenceUnitInfo#getSharedCacheMode(), setPersistenceUnitManager
setValidationModeback to summary
public void setValidationMode(ValidationMode validationMode)

Specify the JPA 2.0 validation mode for this persistence unit, overriding a value in persistence.xml if set.

Note

Only applied if no external PersistenceUnitManager specified.

Since
4.0
See Also
jakarta.persistence.spi.PersistenceUnitInfo#getValidationMode(), setPersistenceUnitManager